@blamejs/exceptd-skills 0.12.11 → 0.12.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +243 -0
- package/bin/exceptd.js +299 -48
- package/data/_indexes/_meta.json +49 -48
- package/data/_indexes/activity-feed.json +13 -5
- package/data/_indexes/catalog-summaries.json +51 -29
- package/data/_indexes/chains.json +3238 -3210
- package/data/_indexes/frequency.json +3 -0
- package/data/_indexes/jurisdiction-map.json +5 -3
- package/data/_indexes/section-offsets.json +712 -685
- package/data/_indexes/theater-fingerprints.json +1 -1
- package/data/_indexes/token-budget.json +355 -340
- package/data/atlas-ttps.json +144 -129
- package/data/attack-techniques.json +339 -0
- package/data/cve-catalog.json +515 -475
- package/data/cwe-catalog.json +1081 -759
- package/data/exploit-availability.json +63 -15
- package/data/framework-control-gaps.json +867 -843
- package/data/rfc-references.json +276 -276
- package/keys/EXPECTED_FINGERPRINT +1 -0
- package/lib/auto-discovery.js +21 -4
- package/lib/cross-ref-api.js +39 -6
- package/lib/cve-curation.js +505 -47
- package/lib/lint-skills.js +217 -15
- package/lib/playbook-runner.js +1224 -183
- package/lib/prefetch.js +121 -8
- package/lib/refresh-external.js +261 -95
- package/lib/refresh-network.js +208 -18
- package/lib/schemas/manifest.schema.json +16 -0
- package/lib/scoring.js +83 -7
- package/lib/sign.js +112 -3
- package/lib/source-ghsa.js +219 -37
- package/lib/source-osv.js +381 -122
- package/lib/validate-catalog-meta.js +64 -9
- package/lib/validate-cve-catalog.js +213 -7
- package/lib/validate-indexes.js +88 -37
- package/lib/validate-playbooks.js +469 -0
- package/lib/verify.js +313 -16
- package/manifest-snapshot.json +1 -1
- package/manifest-snapshot.sha256 +1 -0
- package/manifest.json +73 -73
- package/orchestrator/dispatcher.js +21 -1
- package/orchestrator/event-bus.js +52 -8
- package/orchestrator/index.js +279 -20
- package/orchestrator/pipeline.js +63 -2
- package/orchestrator/scanner.js +32 -10
- package/orchestrator/scheduler.js +196 -20
- package/package.json +3 -1
- package/sbom.cdx.json +9 -9
- package/scripts/check-manifest-snapshot.js +32 -0
- package/scripts/check-sbom-currency.js +65 -3
- package/scripts/check-test-coverage.js +142 -19
- package/scripts/predeploy.js +110 -40
- package/scripts/refresh-manifest-snapshot.js +55 -4
- package/scripts/validate-vendor-online.js +169 -0
- package/scripts/verify-shipped-tarball.js +106 -3
- package/skills/ai-attack-surface/skill.md +18 -10
- package/skills/ai-c2-detection/skill.md +7 -2
- package/skills/ai-risk-management/skill.md +5 -4
- package/skills/api-security/skill.md +3 -3
- package/skills/attack-surface-pentest/skill.md +5 -5
- package/skills/cloud-security/skill.md +1 -1
- package/skills/compliance-theater/skill.md +8 -8
- package/skills/container-runtime-security/skill.md +1 -1
- package/skills/dlp-gap-analysis/skill.md +5 -1
- package/skills/email-security-anti-phishing/skill.md +1 -1
- package/skills/exploit-scoring/skill.md +18 -18
- package/skills/framework-gap-analysis/skill.md +6 -6
- package/skills/global-grc/skill.md +3 -2
- package/skills/identity-assurance/skill.md +2 -2
- package/skills/incident-response-playbook/skill.md +4 -4
- package/skills/kernel-lpe-triage/skill.md +21 -2
- package/skills/mcp-agent-trust/skill.md +17 -10
- package/skills/mlops-security/skill.md +2 -1
- package/skills/ot-ics-security/skill.md +1 -1
- package/skills/policy-exception-gen/skill.md +3 -3
- package/skills/pqc-first/skill.md +1 -1
- package/skills/rag-pipeline-security/skill.md +7 -3
- package/skills/researcher/skill.md +20 -3
- package/skills/sector-energy/skill.md +1 -1
- package/skills/sector-federal-government/skill.md +1 -1
- package/skills/sector-financial/skill.md +3 -3
- package/skills/sector-healthcare/skill.md +2 -2
- package/skills/security-maturity-tiers/skill.md +7 -7
- package/skills/skill-update-loop/skill.md +19 -3
- package/skills/supply-chain-integrity/skill.md +1 -1
- package/skills/threat-model-currency/skill.md +11 -11
- package/skills/threat-modeling-methodology/skill.md +3 -3
- package/skills/webapp-security/skill.md +1 -1
- package/skills/zeroday-gap-learn/skill.md +51 -7
- package/vendor/blamejs/_PROVENANCE.json +4 -1
- package/vendor/blamejs/worker-pool.js +38 -0
|
@@ -87,6 +87,20 @@ function _validateScriptPath(scriptPath) {
|
|
|
87
87
|
throw _err("workerpool/bad-script-path",
|
|
88
88
|
"workerPool.create: scriptPath must be a filesystem path, not an eval/data URL");
|
|
89
89
|
}
|
|
90
|
+
// On Windows path.isAbsolute() accepts UNC + extended-length + device
|
|
91
|
+
// namespace forms (e.g. `\\server\share`, `\\?\UNC\server\share`,
|
|
92
|
+
// `\\?\C:\path`, `\\.\PhysicalDrive0`). The worker pool only supports
|
|
93
|
+
// local-filesystem scripts; reject these prefixes so a hostile or
|
|
94
|
+
// mistyped path can't get a Worker thread to follow a network share or
|
|
95
|
+
// device namespace.
|
|
96
|
+
if (process.platform === "win32") {
|
|
97
|
+
// \\.\, \\?\, \\?\UNC\, or any other \\<server>\<share> form.
|
|
98
|
+
if (/^\\\\[.?]\\/.test(scriptPath) || /^\\\\\?\\UNC\\/i.test(scriptPath) || /^\\\\[^\\?.]/.test(scriptPath)) {
|
|
99
|
+
throw _err("workerpool/bad-script-path",
|
|
100
|
+
"workerPool.create: scriptPath must not use UNC / extended-length / device namespace prefixes on win32; got " +
|
|
101
|
+
JSON.stringify(scriptPath));
|
|
102
|
+
}
|
|
103
|
+
}
|
|
90
104
|
}
|
|
91
105
|
|
|
92
106
|
function _emitAudit(_action, _outcome, _metadata) {
|
|
@@ -94,6 +108,30 @@ function _emitAudit(_action, _outcome, _metadata) {
|
|
|
94
108
|
// Preserved as a function so the rest of the file matches upstream shape.
|
|
95
109
|
}
|
|
96
110
|
|
|
111
|
+
/**
|
|
112
|
+
* Create a worker pool.
|
|
113
|
+
*
|
|
114
|
+
* Lifecycle. Worker threads spawned by the pool hold the parent's event
|
|
115
|
+
* loop open until they are explicitly terminated. Pool timers are NOT
|
|
116
|
+
* unref'd (intentional: timeouts must fire even when no other work is
|
|
117
|
+
* pending). Consumers MUST call `terminate()` when the pool is no longer
|
|
118
|
+
* needed, or wrap their usage in a try/finally:
|
|
119
|
+
*
|
|
120
|
+
* const pool = workerPool.create(scriptPath);
|
|
121
|
+
* try {
|
|
122
|
+
* await pool.run(message);
|
|
123
|
+
* } finally {
|
|
124
|
+
* await pool.terminate();
|
|
125
|
+
* }
|
|
126
|
+
*
|
|
127
|
+
* Failing to call terminate() causes the host process to hang after main()
|
|
128
|
+
* returns. The pool does not auto-recycle on idle, and no GC reachability
|
|
129
|
+
* heuristic will reclaim a live Worker thread.
|
|
130
|
+
*
|
|
131
|
+
* @param {string} scriptPath Absolute filesystem path to the worker script.
|
|
132
|
+
* @param {{ size?: number, onExit?: Function, maxQueueDepth?: number, taskTimeoutMs?: number }} [opts]
|
|
133
|
+
* @returns {{ run: Function, drain: Function, terminate: Function, stats: Function }}
|
|
134
|
+
*/
|
|
97
135
|
function create(scriptPath, opts) {
|
|
98
136
|
opts = opts || {};
|
|
99
137
|
_validateOptsWhitelist(opts, ["size", "onExit", "maxQueueDepth", "taskTimeoutMs"], "workerPool.create");
|