@blamejs/exceptd-skills 0.19.4 → 0.19.5
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 +6 -0
- package/data/_indexes/_meta.json +3 -3
- package/data/zeroday-lessons.json +260 -14
- package/lib/framework-gap.js +19 -1
- package/manifest.json +53 -53
- package/package.json +1 -1
- package/sbom.cdx.json +17 -17
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.19.5 — 2026-08-08
|
|
4
|
+
|
|
5
|
+
Three CVEs reported a control with no name and no requirement text. Their catalog entries held a bare string where the schema expects a control record, which was invisible until 0.19.4 began displaying the field and then rendered as `- undefined undefined:` in the gap report. All three describe the remediation clock for a KEV-listed flaw and now say so, closing the vulnerability-management gaps that already cite them. A malformed record is now omitted from the report rather than printed, so this class degrades to silence instead of noise, and the catalog test fails on the shape so it cannot recur unseen. Three further controls declared no framework gap at all and now name the ones they close.
|
|
6
|
+
|
|
7
|
+
Eight more CVEs report the controls they require, among them CitrixBleed, the Fortinet SSL-VPN out-of-bounds write, the ConnectWise ScreenConnect traversal and the Cisco Secure Firewall Management Center deserialization. These concentrate on what a perimeter appliance compromise demands beyond patching — treating a device that ran a vulnerable build during confirmed exploitation as compromised rather than fixed, and keeping request-level logs outside the appliance's own trust zone long enough to investigate a listing that arrives years after disclosure. Each names the framework controls it closes and carries a test that separates the control being present from it being effective.
|
|
8
|
+
|
|
3
9
|
## 0.19.4 — 2026-08-08
|
|
4
10
|
|
|
5
11
|
`framework-gap` now reports the controls a CVE needs that no framework carries yet. The command already answered half the question — which existing controls are insufficient — and stopped there, so an operator learned which controls fall short without learning what belongs in their place. The catalog had recorded the answer for 302 CVEs since the zero-day learning loop began and no command read it, in either output mode. Each entry names the requirement, its evidence, and the specific framework controls it closes, so it attaches to the gaps listed above it rather than reading as free-standing advice. Both the human-readable report and `--json` carry it, and the summary line counts it.
|
package/data/_indexes/_meta.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema_version": "1.1.0",
|
|
3
|
-
"generated_at": "2026-08-
|
|
3
|
+
"generated_at": "2026-08-09T04:06:57.598Z",
|
|
4
4
|
"generator": "scripts/build-indexes.js",
|
|
5
5
|
"source_count": 64,
|
|
6
6
|
"source_hashes": {
|
|
7
|
-
"manifest.json": "
|
|
7
|
+
"manifest.json": "d8a29cea517d6283eb77e3dafcf4b762bae6c4c4ceb7175ec07d61704adb8410",
|
|
8
8
|
"README.md": "0fa9b167172f104810e5ee6040f11ed741217f7a51c2552a15c69d2a15a164aa",
|
|
9
9
|
"data/atlas-ttps.json": "a14089671efcb4f06dd0f82d688fe49276c1370e167e4483d76e9c0a40ef41eb",
|
|
10
10
|
"data/attack-techniques.json": "6bc0619bcccceccc8d5c12aefa6c11197c625e5d7313e70474f2831e271b23f0",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"data/framework-control-gaps.json": "a0a43cd0c8fff6ca753bb2c98f121922ff3de63102b7d67c86c76037e28cd553",
|
|
17
17
|
"data/global-frameworks.json": "20b18a851b3ab82e57cd159b49476d69fe544f02523398b2015189ab81c7c3f8",
|
|
18
18
|
"data/rfc-references.json": "6e9017eca910ab7e4bee85ad7c23927fd6ec766f34be7fce49ebf020cec3381a",
|
|
19
|
-
"data/zeroday-lessons.json": "
|
|
19
|
+
"data/zeroday-lessons.json": "e71be5d0f356ce0d249b8b01f348553b48d80213e693955f1ea9615b56aec918",
|
|
20
20
|
"skills/kernel-lpe-triage/skill.md": "0f79c641cef6e5f4a942eb94f43c460562bf83dfb67ae112d146c39c6b320fb0",
|
|
21
21
|
"skills/ai-attack-surface/skill.md": "c97335e14cd34bd1cd3c9d2cbd397f33569a07292b2f2f7721483575eb4459f7",
|
|
22
22
|
"skills/mcp-agent-trust/skill.md": "6195c93a6cadb213051214742890fa2bf4e39bae377a654d4195f0c90bd8b896",
|
|
@@ -2140,7 +2140,31 @@
|
|
|
2140
2140
|
},
|
|
2141
2141
|
"ai_discovered_zeroday": false,
|
|
2142
2142
|
"ai_discovery_source": "human_researcher",
|
|
2143
|
-
"ai_assist_factor": "low"
|
|
2143
|
+
"ai_assist_factor": "low",
|
|
2144
|
+
"new_control_requirements": [
|
|
2145
|
+
{
|
|
2146
|
+
"id": "NEW-CTRL-094",
|
|
2147
|
+
"name": "AI-RUNTIME-API-PATH-TRAVERSAL-VALIDATION",
|
|
2148
|
+
"description": "MLflow's artifact endpoint joins a caller-supplied path onto the artifact root and serves the result, so containment must be enforced on the read direction and not only on uploads and extractions: resolve the requested path to an absolute canonical form, verify the resolved result is still under the artifact root (rejecting absolute paths, ../ segments, and symlinks that leave the root), and do that check before the file handle is opened rather than by filtering the request string. On a tracking server the read half is the higher-value half, because the same host holds the object-store credentials, the tracking database URI, and the operator key material that an arbitrary-file read returns.",
|
|
2149
|
+
"evidence": "Packet: the tracking-server artifact endpoint resolves user-controlled paths under the artifact root without normalization, and an unauthenticated HTTP request carrying ../ reads arbitrary files from the host filesystem (CWE-22, CVSS 7.5). A PoC is public and a patch is available.",
|
|
2150
|
+
"gap_closes": [
|
|
2151
|
+
"ISO-27001-2022-A.8.28",
|
|
2152
|
+
"UK-CAF-B4"
|
|
2153
|
+
]
|
|
2154
|
+
},
|
|
2155
|
+
{
|
|
2156
|
+
"id": "NEW-CTRL-033",
|
|
2157
|
+
"name": "AI-ML-DEVELOPER-TOOLING-INVENTORY",
|
|
2158
|
+
"description": "An MLflow tracking server is typically stood up by a data-science team rather than by IT, so nothing tells the application-patching program that a network-reachable artifact-read flaw exists on it — the asset is not on the list the patch SLA runs against. The inventory entry for this server must record each listening endpoint, whether any authentication sits in front of the artifact route specifically (this traversal is reachable unauthenticated), and the blast radius of a file read from that host: artifact-store credentials, registered model artifacts, and training-data paths, which is how a file read becomes model-supply-chain tampering. It needs its own patch SLA tier rather than the generic application tier.",
|
|
2159
|
+
"evidence": "Packet: an unauthenticated HTTP request to the tracking server's artifact endpoint reads arbitrary host files. The CVE is not KEV-listed and active exploitation is unknown despite a public PoC and RWEP 35 — the exact profile that never surfaces on a KEV-driven patch queue and so depends on the asset being inventoried to be remediated at all.",
|
|
2160
|
+
"gap_closes": [
|
|
2161
|
+
"NIST-AI-RMF-MEASURE-2.7",
|
|
2162
|
+
"OWASP-ML-Top-10-2023-ML06",
|
|
2163
|
+
"AU-ISM-1546",
|
|
2164
|
+
"NIS2-Art21-network-security"
|
|
2165
|
+
]
|
|
2166
|
+
}
|
|
2167
|
+
]
|
|
2144
2168
|
},
|
|
2145
2169
|
"CVE-2024-27132": {
|
|
2146
2170
|
"name": "MLflow Recipe Template Injection XSS to Client-Side RCE",
|
|
@@ -2400,7 +2424,30 @@
|
|
|
2400
2424
|
},
|
|
2401
2425
|
"ai_discovered_zeroday": false,
|
|
2402
2426
|
"ai_discovery_source": "human_researcher",
|
|
2403
|
-
"ai_assist_factor": "low"
|
|
2427
|
+
"ai_assist_factor": "low",
|
|
2428
|
+
"new_control_requirements": [
|
|
2429
|
+
{
|
|
2430
|
+
"id": "NEW-CTRL-030",
|
|
2431
|
+
"name": "PERIMETER-DEVICE-ZERODAY-SLA-TIER",
|
|
2432
|
+
"description": "A NetScaler ADC/Gateway is the authentication and TLS-termination boundary for the applications behind it, so the 14/30-day patch windows the citing controls grade against are the wrong clock for it — the device is not protected by the perimeter, it is the perimeter. CVE-2023-3519 argues for a distinct tier: for a pre-authentication defect on an internet-reachable NetScaler, either the fixed build is deployed or the exposed virtual server's public interface is taken offline, within hours of KEV listing, with that shutdown pre-authorized so an on-call engineer can take it without a change window. The tier must also be driven by configured role rather than by product name. Only appliances configured to serve the gateway SAML/formssso path reach the vulnerable nsppe code, so an asset inventory that records 'NetScaler present' cannot select the affected population — it has to record which virtual servers are published and which authentication paths they expose, or the compressed SLA fires against the wrong devices and misses the right ones.",
|
|
2433
|
+
"evidence": "Citrix NetScaler ADC/Gateway, CISA KEV-listed 2023-07-19 with confirmed in-the-wild exploitation and a public PoC available. The packet's attack-vector record: an unauthenticated HTTP POST to /gwtest/formssso reaches the vulnerable nsppe parser — no credential and no prior foothold required — and CISA AA23-201A documented in-wild exploitation by Chinese state-sponsored actors against US critical-infrastructure organizations within weeks of disclosure. RWEP 80 / CVSS 9.8.",
|
|
2434
|
+
"gap_closes": [
|
|
2435
|
+
"AU-Essential-8-Patch",
|
|
2436
|
+
"PCI-DSS-4.0-6.3.3",
|
|
2437
|
+
"NIS2-Art21-vulnerability-management"
|
|
2438
|
+
]
|
|
2439
|
+
},
|
|
2440
|
+
{
|
|
2441
|
+
"id": "NEW-CTRL-032",
|
|
2442
|
+
"name": "PERIMETER-COMPROMISE-REBUILD-NOT-PATCH",
|
|
2443
|
+
"description": "The nsppe stack overflow runs before authentication, which means a successful CVE-2023-3519 exploit generates no authentication event to find later and executes with the packet engine's privilege on the appliance. Upgrading to the fixed NetScaler build restores the SAML parser and says nothing about what was installed while the parser was broken. Any NetScaler that served the gateway formssso path from an untrusted network on a vulnerable build must therefore be dispositioned as compromised regardless of what a post-upgrade version scan reports: capture and diff the running configuration against the last known-good, inspect the appliance's web-served directories for files not shipped by the vendor, then rebuild from vendor media at the fixed version rather than upgrading in place, and rotate what the device held — SAML signing and session material, the LDAP/RADIUS bind accounts it authenticated against, the local administrative accounts, and any TLS private key stored on it. Version-based remediation evidence is specifically what fails here, because the attacker's artifacts are not versioned.",
|
|
2444
|
+
"evidence": "Pre-authentication stack buffer overflow (CWE-787) in the NetScaler SAML processing path, reachable by an unauthenticated HTTP POST per the packet's attack-vector record. CISA KEV-listed 2023-07-19, active exploitation confirmed, public PoC available, patch available, RWEP 80. CISA AA23-201A documented state-sponsored exploitation of US critical-infrastructure organizations within weeks of disclosure — meaning estates that patched after that interval applied the fix to devices an adversary had already entered.",
|
|
2445
|
+
"gap_closes": [
|
|
2446
|
+
"ISO-27001-2022-A.8.8",
|
|
2447
|
+
"NIST-800-53-SI-2"
|
|
2448
|
+
]
|
|
2449
|
+
}
|
|
2450
|
+
]
|
|
2404
2451
|
},
|
|
2405
2452
|
"CVE-2024-1709": {
|
|
2406
2453
|
"name": "ConnectWise ScreenConnect auth-bypass",
|
|
@@ -3057,7 +3104,39 @@
|
|
|
3057
3104
|
},
|
|
3058
3105
|
"ai_discovered_zeroday": false,
|
|
3059
3106
|
"ai_discovery_source": "vendor_research",
|
|
3060
|
-
"ai_assist_factor": "low"
|
|
3107
|
+
"ai_assist_factor": "low",
|
|
3108
|
+
"new_control_requirements": [
|
|
3109
|
+
{
|
|
3110
|
+
"id": "NEW-CTRL-032",
|
|
3111
|
+
"name": "PERIMETER-COMPROMISE-REBUILD-NOT-PATCH",
|
|
3112
|
+
"description": "Fortinet's own follow-up on this CVE is the proof case for the control: devices compromised through sslvpnd before patching were left with read-only symlinks in the SSL-VPN language-file directory that continue to grant filesystem read access on fully patched firmware. For FortiOS and FortiProxy the remediation verdict therefore cannot be 'the appliance is on a fixed build'. Every appliance that exposed the SSL-VPN web surface while on a vulnerable build has to be triaged as a compromise: enumerate the SSL-VPN language-file directory and the other web-served paths for entries that are not vendor content, diff the running configuration against a known-good export, and where anything is found — or where the pre-patch exposure window cannot be bounded — reimage the appliance rather than upgrade in place, then rotate the local administrative credentials, API tokens, VPN user secrets, RADIUS and LDAP bind secrets, and any certificate material held on the device. A device whose exposure window predates the patch should be rebuilt even when the symlink hunt comes back clean, because the same code execution could place persistence somewhere the published hunt does not look.",
|
|
3113
|
+
"evidence": "Fortinet FortiOS / FortiProxy, CISA KEV-listed 2024-02-09 with confirmed in-the-wild exploitation, public PoC available, RWEP 85 / CVSS 9.8. Per the packet's attack-vector record: an out-of-bounds write in the sslvpnd daemon's HTTP request handling, reachable by an unauthenticated crafted HTTP request to the SSL-VPN web surface; mass-scanning began within hours of the 2024-02-08 vendor disclosure; and Fortinet's 2025-04-11 follow-up advisory documented attackers who compromised devices before patching leaving read-only symlinks in the SSL-VPN language-file directory that grant persistent filesystem read on fully patched firmware — the packet states plainly that patch alone is insufficient.",
|
|
3114
|
+
"gap_closes": [
|
|
3115
|
+
"ISO-27001-2022-A.8.8",
|
|
3116
|
+
"NIST-800-53-SI-2",
|
|
3117
|
+
"AU-ISM-1546"
|
|
3118
|
+
]
|
|
3119
|
+
},
|
|
3120
|
+
{
|
|
3121
|
+
"id": "NEW-CTRL-030",
|
|
3122
|
+
"name": "PERIMETER-DEVICE-ZERODAY-SLA-TIER",
|
|
3123
|
+
"description": "Mass scanning for this bug started within hours of Fortinet's disclosure and KEV listing followed the next day, so the exposure window was shorter than every patch clock the citing controls grade against — and shorter even than the 7-day federal deadline attached to the KEV entry. The tier this CVE argues for: on a FortiGate or FortiProxy whose SSL-VPN web surface is reachable from the internet, the mitigation clock starts at vendor disclosure rather than at KEV listing or at scanner detection, and taking the SSL-VPN portal offline or restricting it to known client source ranges must be a pre-authorized action an on-call engineer can execute without waiting for a change window, since that is the only mitigation available in the interval between disclosure and a tested firmware upgrade. The tier also has to be written into the SLA policy explicitly for firewalls, which are routinely classified in an asset register as a security control rather than as an asset carrying its own patch obligation — a classification that leaves the single most exposed device in the estate on the slowest clock.",
|
|
3124
|
+
"evidence": "FortiOS / FortiProxy SSL-VPN pre-authentication out-of-bounds write, CVSS 9.8, RWEP 85, public PoC available. The packet records mass-scanning beginning within hours of the 2024-02-08 vendor disclosure, CISA KEV listing on 2024-02-09 with a 7-day federal remediation deadline, and confirmed active exploitation — exploitation preceded the deadline the strictest citing framework would have set.",
|
|
3125
|
+
"gap_closes": [
|
|
3126
|
+
"PCI-DSS-4.0-6.3.3",
|
|
3127
|
+
"DORA-Art-9"
|
|
3128
|
+
]
|
|
3129
|
+
},
|
|
3130
|
+
{
|
|
3131
|
+
"id": "NEW-CTRL-031",
|
|
3132
|
+
"name": "FIREWALL-EGRESS-TELEMETRY-SEPARATE-TRUST-ZONE",
|
|
3133
|
+
"description": "The post-patch symlink persistence this CVE is known for can only be scoped if the pre-patch exposure window can be bounded, and on FortiOS the record of that window lives on the device the attacker controlled. Exploitation is pre-authentication, so there is no login event to correlate against; the only signal is in the SSL-VPN portal request logs and the appliance's own session records, both of which sit on local storage within reach of code executing in sslvpnd. FortiGate and FortiProxy must therefore forward SSL-VPN portal request logs, administrative session logs and outbound session records to a collector in a separate trust zone — reached with credentials the appliance's administrators do not hold, on a management path the appliance cannot administer — with retention long enough to span the interval between a vendor disclosure and the estate finishing its upgrade cycle, which for this CVE meant covering a window that had already opened before the advisory published. Without that, the answer to 'was this appliance touched before we patched' is supplied by the appliance itself, and a device that was compromised is not a trustworthy witness to its own compromise.",
|
|
3134
|
+
"evidence": "Unauthenticated code execution in the sslvpnd daemon on FortiOS / FortiProxy per the packet's attack-vector record, with no authentication step to generate a log event. CISA KEV-listed 2024-02-09, confirmed in-the-wild exploitation, public PoC available, RWEP 85. Fortinet's 2025-04-11 follow-up advisory established that compromise predating the patch persists onto patched firmware — so the forensic question is retrospective, and answering it requires telemetry that survived the compromise of the device that produced it.",
|
|
3135
|
+
"gap_closes": [
|
|
3136
|
+
"NIS2-Art21-network-security"
|
|
3137
|
+
]
|
|
3138
|
+
}
|
|
3139
|
+
]
|
|
3061
3140
|
},
|
|
3062
3141
|
"CVE-2025-10585": {
|
|
3063
3142
|
"name": "Google Chrome V8 Type Confusion Zero-Day (TAG-disclosed)",
|
|
@@ -6081,7 +6160,11 @@
|
|
|
6081
6160
|
"name": "NPM-CI-IGNORE-SCRIPTS-DEFAULT",
|
|
6082
6161
|
"description": "Equivalent posture for Bundler / Go: refuse postinstall / init-hook execution from new or recently-updated dependencies by default in CI.",
|
|
6083
6162
|
"evidence": "MAL-2026-RUBYGEMS-BUFFERZONECORP-SLEEPER — Go module init hooks rewrote GOPROXY and go.sum.",
|
|
6084
|
-
"gap_closes": [
|
|
6163
|
+
"gap_closes": [
|
|
6164
|
+
"NIS2-Art21-supply-chain",
|
|
6165
|
+
"NIST-800-218-SSDF-PO.4.2",
|
|
6166
|
+
"AU-Essential-8-App-Hardening"
|
|
6167
|
+
]
|
|
6085
6168
|
}
|
|
6086
6169
|
],
|
|
6087
6170
|
"compliance_exposure_score": {
|
|
@@ -6346,14 +6429,20 @@
|
|
|
6346
6429
|
"name": "MCP-SERVER-CONFIG-ALLOWLIST",
|
|
6347
6430
|
"description": "MCP server inventory + allowlist limits the adversarial-content surface that can reach the IDE agent.",
|
|
6348
6431
|
"evidence": "CVE-2025-55319 — external MCP server messages were a documented delivery path.",
|
|
6349
|
-
"gap_closes": [
|
|
6432
|
+
"gap_closes": [
|
|
6433
|
+
"OWASP-LLM-Top-10-LLM05",
|
|
6434
|
+
"UK-CAF-B4"
|
|
6435
|
+
]
|
|
6350
6436
|
},
|
|
6351
6437
|
{
|
|
6352
6438
|
"id": "NEW-CTRL-071",
|
|
6353
6439
|
"name": "AI-DISCOVERY-CREDIT-IN-COMPLIANCE-EVIDENCE",
|
|
6354
6440
|
"description": "Record AI-defender contribution.",
|
|
6355
6441
|
"evidence": "CVE-2025-55319 — ZeroPath disclosure; framework attribution gap.",
|
|
6356
|
-
"gap_closes": [
|
|
6442
|
+
"gap_closes": [
|
|
6443
|
+
"ISO-IEC-42001-AIMS-A.6.2.5",
|
|
6444
|
+
"NIST-AI-RMF-MEASURE-2.7"
|
|
6445
|
+
]
|
|
6357
6446
|
}
|
|
6358
6447
|
],
|
|
6359
6448
|
"compliance_exposure_score": {
|
|
@@ -6927,7 +7016,29 @@
|
|
|
6927
7016
|
},
|
|
6928
7017
|
"ai_discovered_zeroday": false,
|
|
6929
7018
|
"ai_discovery_source": "vendor_research",
|
|
6930
|
-
"ai_assist_factor": "none"
|
|
7019
|
+
"ai_assist_factor": "none",
|
|
7020
|
+
"new_control_requirements": [
|
|
7021
|
+
{
|
|
7022
|
+
"id": "NEW-CTRL-032",
|
|
7023
|
+
"name": "PERIMETER-COMPROMISE-REBUILD-NOT-PATCH",
|
|
7024
|
+
"description": "Upgrading the ScreenConnect server to the fixed build removes the traversal but not what the traversal already wrote. CVE-2024-1708 is an arbitrary file-write primitive: chained with the companion authentication bypass it plants a web shell in a ScreenConnect-served directory, and that file is application content rather than product code, so the vendor update leaves it in place and running. Any ScreenConnect instance that was reachable from an untrusted network on a vulnerable build must therefore be handled as compromised rather than as remediated: export the configuration, session history and extension inventory for forensics, rebuild the host from known-good media, reinstall at the fixed version, and rotate everything the server held or brokered — the relay/agent join material, the ScreenConnect administrative and integrated-identity accounts, and any credential a technician entered through a remote session during the exposure window. Deleting the one web shell that was found and then patching is not equivalent, because the same write primitive places files anywhere the service account can reach, and the read half of the traversal means configuration secrets on the host should be assumed disclosed.",
|
|
7025
|
+
"evidence": "ConnectWise ScreenConnect, CISA KEV-listed 2026-04-28 with confirmed in-the-wild exploitation and a public PoC available. The packet's attack-vector record states the path traversal (CWE-22) lets an attacker write or read files outside the intended directory and was used with the companion authentication bypass to drop a web shell — i.e. attacker-planted files persist independently of the vendor patch. RWEP 83 against CVSS 7.5: the gap between the two is exactly the post-exploitation persistence that a base score for an information-disclosure-shaped traversal does not carry.",
|
|
7026
|
+
"gap_closes": [
|
|
7027
|
+
"NIST-800-53-SI-2",
|
|
7028
|
+
"ISO-27001-2022-A.8.8",
|
|
7029
|
+
"CIS-Controls-v8-10.1"
|
|
7030
|
+
]
|
|
7031
|
+
},
|
|
7032
|
+
{
|
|
7033
|
+
"id": "NEW-CTRL-037",
|
|
7034
|
+
"name": "FLEET-COMPROMISE-IR-PLAYBOOK",
|
|
7035
|
+
"description": "ScreenConnect is a fleet control plane, not an ordinary web application: its access agents run with service-level privilege on every managed endpoint and execute what the server tells them to. An incident-response plan scoped to 'the ScreenConnect host' therefore has the wrong blast radius, because a web shell reached through this traversal gives the attacker the same command channel into the managed estate that the legitimate operator has. The playbook must be written and rehearsed before the event and must cover: revocation and re-issue of the relay/agent trust material so existing agent installations cannot be driven by attacker-held server identity; an audit of session, command and file-transfer history plus any extension or extension directory added since the exposure window opened; quarantine criteria for endpoints that received a session or a queued command during that window; and rotation of every credential used through a remote session, including the customer-side administrative accounts a technician authenticated with. Recovery timing must assume the ScreenConnect server itself is unavailable during the response, since it is the system being rebuilt.",
|
|
7036
|
+
"evidence": "ConnectWise ScreenConnect path traversal, CISA KEV-listed 2026-04-28, active exploitation confirmed, public PoC available, RWEP 83. The packet records the traversal being used with the companion authentication bypass to drop a web shell on the server that brokers remote sessions to managed endpoints, which places every endpoint reachable from that server inside the incident scope rather than outside it.",
|
|
7037
|
+
"gap_closes": [
|
|
7038
|
+
"UK-CAF-D1"
|
|
7039
|
+
]
|
|
7040
|
+
}
|
|
7041
|
+
]
|
|
6931
7042
|
},
|
|
6932
7043
|
"CVE-2025-29635": {
|
|
6933
7044
|
"name": "D-Link DIR-823X Command Injection Vulnerability",
|
|
@@ -7762,7 +7873,30 @@
|
|
|
7762
7873
|
},
|
|
7763
7874
|
"ai_discovered_zeroday": false,
|
|
7764
7875
|
"ai_discovery_source": "vendor_research",
|
|
7765
|
-
"ai_assist_factor": "none"
|
|
7876
|
+
"ai_assist_factor": "none",
|
|
7877
|
+
"new_control_requirements": [
|
|
7878
|
+
{
|
|
7879
|
+
"id": "NEW-CTRL-001",
|
|
7880
|
+
"name": "CISA-KEV-RESPONSE-SLA",
|
|
7881
|
+
"description": "A vendor patch for this Office document-parsing flaw exists and the CVE identifier dates to 2009, yet CISA added it to KEV on 2026-04-14 on the strength of current in-the-wild exploitation. Any remediation queue that sorts or ages by CVE publication date, by 'newly disclosed' status, or by scanner first-seen date buries a CVE-2009 entry beneath every current-quarter finding and it never reaches a patch window, which is exactly why the long-tail estate is still being exploited. The KEV listing date must start the clock instead of the CVE year: on 2026-04-14 every Office installation in the estate is re-evaluated against the fixed build inside the KEV SLA, and any Office build that cannot reach it is cut off from untrusted documents rather than risk-accepted by age. The distinguishing test: query the vulnerability queue for KEV-listed CVEs older than ten years and confirm they carry the same due date as a current-quarter KEV entry — a program whose SLA derives from disclosure age reports 'no overdue criticals' while an actively exploited 2009 Office flaw sits unremediated on the frozen estate.",
|
|
7882
|
+
"evidence": "Packet: CVE-2009-0238, Microsoft Office Remote Code Execution, CWE-94 code injection in Office document parsing, exploitable by an attacker-controlled document for code execution in the Office process. CISA KEV-listed 2026-04-14, active_exploitation confirmed, CVSS 9.8, RWEP 77, poc_available true, patch_available true — the residual exposure is the long-tail unpatched estate, not an absent fix.",
|
|
7883
|
+
"gap_closes": [
|
|
7884
|
+
"ISO-27001-2022-A.8.8",
|
|
7885
|
+
"NIST-800-53-SI-2",
|
|
7886
|
+
"NIS2-Art21-patch-management"
|
|
7887
|
+
]
|
|
7888
|
+
},
|
|
7889
|
+
{
|
|
7890
|
+
"id": "NEW-CTRL-120",
|
|
7891
|
+
"name": "DOWNLOAD-PROVENANCE-ENFORCEMENT",
|
|
7892
|
+
"description": "Exploitation here requires the victim to open an attacker-supplied Office document, so on an estate that has not yet reached the fixed build the delivery path is the only enforceable control. Require Mark-of-the-Web on every Office file arriving by mail, web download, or untrusted file share, and require MOTW-tagged documents to open in Protected View — an isolated, reduced-privilege render — instead of the full parsing path that carries the CWE-94 sink at the user's own process privilege. Provenance must survive the container: files extracted from an archive, mounted from an ISO or VHD, or renamed must inherit the tag rather than lose it, and 'Enable Editing' on externally sourced documents must be blocked by policy rather than left to the user. The distinguishing test: mail a MOTW-tagged spreadsheet nested inside a ZIP to a managed workstation, extract it, and confirm the extracted file still opens in Protected View — a user-application-hardening attestation that covers only macro and ActiveX/OLE settings still lets a provenance-stripped document reach the vulnerable parser with full user privileges.",
|
|
7893
|
+
"evidence": "Packet attack vector: an attacker-controlled document reaching Microsoft Office's parser for code execution in the Office process (CWE-94). poc_available true and CISA-confirmed in-the-wild exploitation at the 2026-04-14 KEV listing. AU-Essential-8-App-Hardening (user application hardening) and NIST-800-53-AC-6 (least privilege) are both already recorded as insufficient controls citing this CVE.",
|
|
7894
|
+
"gap_closes": [
|
|
7895
|
+
"AU-Essential-8-App-Hardening",
|
|
7896
|
+
"NIST-800-53-AC-6"
|
|
7897
|
+
]
|
|
7898
|
+
}
|
|
7899
|
+
]
|
|
7766
7900
|
},
|
|
7767
7901
|
"CVE-2026-32201": {
|
|
7768
7902
|
"name": "Microsoft SharePoint Server Improper Input Validation Vulnerability",
|
|
@@ -7992,7 +8126,30 @@
|
|
|
7992
8126
|
},
|
|
7993
8127
|
"ai_discovered_zeroday": false,
|
|
7994
8128
|
"ai_discovery_source": "vendor_research",
|
|
7995
|
-
"ai_assist_factor": "none"
|
|
8129
|
+
"ai_assist_factor": "none",
|
|
8130
|
+
"new_control_requirements": [
|
|
8131
|
+
{
|
|
8132
|
+
"id": "NEW-CTRL-032",
|
|
8133
|
+
"name": "PERIMETER-COMPROMISE-REBUILD-NOT-PATCH",
|
|
8134
|
+
"description": "Exchange Server is internet-facing by construction and this CWE-502 sink yields code execution on the mail server itself. A vendor patch exists and the CVE identifier dates to the 2023 cycle, while the KEV listing is 2026-04-13 — so an estate installing the fixed cumulative/security update in response to that listing is patching a host that stayed reachable and exploitable throughout the interval, with a public PoC in circulation. Treat any Exchange server that ran a vulnerable build during confirmed in-the-wild exploitation as compromised until proven otherwise: alongside patching, hunt the OWA/ECP virtual directories and the Exchange install tree for web shells and unexpected .aspx/.dll drops, export and diff transport rules, mailbox permissions, and journaling configuration against last known-good, and rotate the machine account, Exchange service accounts, and every credential that authenticated through the server during the exposure window. Patch-in-place restores the build number and leaves a resident implant and any stolen credential fully operative. The distinguishing test: open a closed Exchange remediation ticket and look for a post-patch persistence sweep and a credential-rotation record — a 'patched within SLA' closure carrying neither is paper remediation of a service that was already being exploited.",
|
|
8135
|
+
"evidence": "Packet: CVE-2023-21529, Microsoft Exchange Server Deserialization of Untrusted Data (CWE-502) reachable by an attacker for remote code execution on the Exchange server. CISA KEV-listed 2026-04-13, active_exploitation confirmed, CVSS 9.8, RWEP 83, poc_available true, patch_available true. AU-Essential-8-Patch, NIST-800-53-SI-2, and NIS2-Art21-vulnerability-handling are already recorded as insufficient controls citing this CVE.",
|
|
8136
|
+
"gap_closes": [
|
|
8137
|
+
"NIST-800-53-SI-2",
|
|
8138
|
+
"AU-Essential-8-Patch",
|
|
8139
|
+
"NIS2-Art21-vulnerability-handling"
|
|
8140
|
+
]
|
|
8141
|
+
},
|
|
8142
|
+
{
|
|
8143
|
+
"id": "NEW-CTRL-040",
|
|
8144
|
+
"name": "OWA-PER-REQUEST-SIEM-INGESTION",
|
|
8145
|
+
"description": "A serialized object arriving in a request body or header is inert to file-based anti-malware — nothing is written to disk before the gadget chain runs inside the Exchange worker process — and it travels over a session that authentication logging records as ordinary, so the endpoint AV control credited for this server never had anything to detect. Ship Exchange's per-request IIS/OWA/ECP access logs (URI stem and query, method, request size, status, user agent, source address, responding backend) to a SIEM outside the Exchange trust zone with at least 90-day retention, and alert on POSTs to Autodiscover, ECP, and PowerShell endpoints with anomalous body sizes or from unexpected sources. Retention depth is the load-bearing part here: the KEV listing landed 2026-04-13 on a CVE from the 2023 cycle, so an investigation opened at patch time must be able to reach back into an exposure window that long. The distinguishing test: pick a date months before the current remediation and try to retrieve the full request line for a single OWA POST from the SIEM — if only the authentication event survives, the deserialization request that established the foothold is unrecoverable.",
|
|
8146
|
+
"evidence": "Packet attack vector: CWE-502 deserialization of untrusted data reachable for remote code execution on the Exchange server; CISA KEV-listed 2026-04-13 with confirmed in-the-wild exploitation, poc_available true, RWEP 83, CVSS 9.8. CIS-Controls-v8-10.1 (Deploy and Maintain Anti-Malware Software) and UK-CAF-B4 (System security) are already recorded as insufficient controls citing this CVE.",
|
|
8147
|
+
"gap_closes": [
|
|
8148
|
+
"CIS-Controls-v8-10.1",
|
|
8149
|
+
"UK-CAF-B4"
|
|
8150
|
+
]
|
|
8151
|
+
}
|
|
8152
|
+
]
|
|
7996
8153
|
},
|
|
7997
8154
|
"CVE-2023-36424": {
|
|
7998
8155
|
"name": "Microsoft Windows Out-of-Bounds Read Vulnerability",
|
|
@@ -8452,7 +8609,31 @@
|
|
|
8452
8609
|
},
|
|
8453
8610
|
"ai_discovered_zeroday": false,
|
|
8454
8611
|
"ai_discovery_source": "vendor_research",
|
|
8455
|
-
"ai_assist_factor": "none"
|
|
8612
|
+
"ai_assist_factor": "none",
|
|
8613
|
+
"new_control_requirements": [
|
|
8614
|
+
{
|
|
8615
|
+
"id": "NEW-CTRL-057",
|
|
8616
|
+
"name": "BROWSER-MANAGED-UPDATE-NO-DEFERRAL",
|
|
8617
|
+
"description": "The fix for this Dawn/WebGPU use-after-free reaches endpoints only as a browser security-channel release, so any managed update ring that pins a version or holds the security channel for staging leaves the sandbox-escape link of the chain live fleet-wide. Managed browser policy has to let the security channel land within 24h and force the relaunch that actually replaces the running GPU process — an updated binary on disk beside a browser session that has not been restarted is still executing the vulnerable Dawn code.",
|
|
8618
|
+
"evidence": "KEV-listed 2026-04-01 with confirmed in-the-wild exploitation, a public PoC, and a patch available; the flaw is the sandbox-escape step used after the renderer is already compromised, so it is the link that converts a contained renderer bug into host code execution.",
|
|
8619
|
+
"gap_closes": [
|
|
8620
|
+
"AU-Essential-8-App-Hardening",
|
|
8621
|
+
"NIST-800-53-SI-2",
|
|
8622
|
+
"ISO-27001-2022-A.8.8",
|
|
8623
|
+
"NIS2-Art21-patch-management"
|
|
8624
|
+
]
|
|
8625
|
+
},
|
|
8626
|
+
{
|
|
8627
|
+
"id": "NEW-CTRL-018",
|
|
8628
|
+
"name": "SCANNER-PAPER-COMPLIANCE-TEST",
|
|
8629
|
+
"description": "A scan that reports the installed browser version as fixed does not prove this defect is gone. Dawn is Chromium's WebGPU implementation, so the same component ships inside Chromium-derived browsers and inside desktop applications that embed Chromium, each on its own update cadence and none of them moved by the browser's updater. The operational test: does the scan enumerate every Chromium-embedding runtime on the host as a separate versioned asset, record whether WebGPU is reachable in each, and read the version of the running process rather than the installed package?",
|
|
8630
|
+
"evidence": "Patch available and KEV-listed 2026-04-01 with confirmed exploitation; the packet locates the flaw in Dawn/WebGPU rather than in a single vendor application, and exploitation requires prior renderer compromise, so the escape path only matters where a vulnerable Dawn build is actually loaded.",
|
|
8631
|
+
"gap_closes": [
|
|
8632
|
+
"ISO-27001-2022-A.8.8",
|
|
8633
|
+
"NIST-800-53-SI-2"
|
|
8634
|
+
]
|
|
8635
|
+
}
|
|
8636
|
+
]
|
|
8456
8637
|
},
|
|
8457
8638
|
"CVE-2026-3055": {
|
|
8458
8639
|
"name": "Citrix NetScaler Out-of-Bounds Read Vulnerability",
|
|
@@ -11557,7 +11738,40 @@
|
|
|
11557
11738
|
},
|
|
11558
11739
|
"ai_discovered_zeroday": false,
|
|
11559
11740
|
"ai_discovery_source": "vendor_research",
|
|
11560
|
-
"ai_assist_factor": "none"
|
|
11741
|
+
"ai_assist_factor": "none",
|
|
11742
|
+
"new_control_requirements": [
|
|
11743
|
+
{
|
|
11744
|
+
"id": "NEW-CTRL-030",
|
|
11745
|
+
"name": "PERIMETER-DEVICE-ZERODAY-SLA-TIER",
|
|
11746
|
+
"description": "The perimeter SLA tier has to extend from the firewall to the console that programs it. Cisco Secure Firewall Management Center and Security Cloud Control firewall management push policy, access rules, intrusion configuration, and software to every managed sensor, so unauthenticated remote code execution on the management plane is equivalent to administrative control of the entire enforcement estate — a strictly larger blast radius than the same flaw on one appliance, and the reason a frameworks list that enumerates only firewalls, VPN concentrators, and load-balancers under-tiers this device. On the 2026-03-19 KEV listing the requirement is deployment of the fixed release within hours, or removal of the FMC/SCC management interface from any network segment an attacker can reach (management VRF, jump-host-only ACL), not the routine 14/30-day appliance window; for the SaaS-delivered SCC side, vendor remediation status must be obtained and recorded rather than assumed complete. The distinguishing test: from a general-purpose user VLAN, attempt to open the FMC management HTTPS interface — if it answers, the standard patch window is the only thing standing between an unauthenticated attacker and the firewall control plane.",
|
|
11747
|
+
"evidence": "Packet: CVE-2026-20131, Cisco Secure Firewall Management Center (FMC) Software and Cisco Security Cloud Control (SCC) Firewall Management, CWE-502 deserialization of untrusted data yielding unauthenticated remote code execution on the firewall management plane. CISA KEV-listed 2026-03-19, active_exploitation confirmed, CVSS 9.8, RWEP 83, poc_available true, patch_available true.",
|
|
11748
|
+
"gap_closes": [
|
|
11749
|
+
"AU-Essential-8-Patch",
|
|
11750
|
+
"NIST-800-53-SI-2",
|
|
11751
|
+
"ISO-27001-2022-A.8.8"
|
|
11752
|
+
]
|
|
11753
|
+
},
|
|
11754
|
+
{
|
|
11755
|
+
"id": "NEW-CTRL-032",
|
|
11756
|
+
"name": "PERIMETER-COMPROMISE-REBUILD-NOT-PATCH",
|
|
11757
|
+
"description": "FMC holds the administrative credentials, the sensor registration keys, and the policy source of truth for every firewall it manages, so unauthenticated code execution on it is a credential-and-configuration compromise of the enforcement fleet rather than a single-host incident — and with a public PoC and confirmed in-the-wild exploitation, an operator patching after 2026-03-19 cannot assume they got there first. The runbook for a KEV-listed, actively exploited FMC/SCC RCE must default to: export and diff the running policy against last known-good (added permit rules, disabled inspection, new remote-access or VPN entries, altered NAT), reimage FMC from vendor media at the fixed release instead of upgrading in place, re-register managed devices with new keys, and rotate FMC local admin, RADIUS/TACACS, and every device credential FMC stored. The distinguishing test: read the FMC incident procedure and check whether it ends at 'upgraded to fixed release' — with no policy diff and no sensor re-registration step, an attacker-inserted firewall rule survives the remediation and keeps the network open behind a device the audit now records as patched.",
|
|
11758
|
+
"evidence": "Packet: unauthenticated remote code execution on the Cisco FMC / SCC firewall management plane via CWE-502 deserialization; CISA KEV-listed 2026-03-19 with active_exploitation confirmed, poc_available true, patch_available true, RWEP 83, CVSS 9.8. AU-Essential-8-Patch and NIS2-Art21-vulnerability-handling are already recorded as insufficient controls citing this CVE.",
|
|
11759
|
+
"gap_closes": [
|
|
11760
|
+
"NIS2-Art21-vulnerability-handling",
|
|
11761
|
+
"AU-Essential-8-Patch"
|
|
11762
|
+
]
|
|
11763
|
+
},
|
|
11764
|
+
{
|
|
11765
|
+
"id": "NEW-CTRL-031",
|
|
11766
|
+
"name": "FIREWALL-EGRESS-TELEMETRY-SEPARATE-TRUST-ZONE",
|
|
11767
|
+
"description": "In a Cisco Secure Firewall deployment FMC is both the target of this flaw and the event collector for the sensors it manages, so an attacker who reaches unauthenticated code execution on FMC lands on the box holding the connection, intrusion, and audit records that would evidence the intrusion — including FMC's own audit trail of the policy changes they make next. Where the deployment relies on FMC as the event store, that is a single-point forensic dependency on the compromised host. Forward FMC audit and syslog, plus the managed sensors' event streams, to a SIEM in a separate trust zone with separate credentials and a separate authentication path, and alert on FMC audit-log gaps, policy deployments not tied to a change ticket, and sensor event streams that go silent. The distinguishing test: simulate a total FMC outage and confirm the SIEM still holds the managed sensors' events for that window — if firewall telemetry exists only inside FMC, an exploited management plane produces no evidence at all, which is why the anti-malware control credited for this estate (unrunnable on the appliance in the first place) cannot substitute.",
|
|
11768
|
+
"evidence": "Packet: CWE-502 deserialization yielding unauthenticated RCE on the Cisco FMC / SCC firewall management plane, CISA KEV-listed 2026-03-19 with confirmed in-the-wild exploitation and a public PoC (RWEP 83). CIS-Controls-v8-10.1 (Deploy and Maintain Anti-Malware Software) and UK-CAF-B4 (System security) are already recorded as insufficient controls citing this CVE.",
|
|
11769
|
+
"gap_closes": [
|
|
11770
|
+
"CIS-Controls-v8-10.1",
|
|
11771
|
+
"UK-CAF-B4"
|
|
11772
|
+
]
|
|
11773
|
+
}
|
|
11774
|
+
]
|
|
11561
11775
|
},
|
|
11562
11776
|
"CVE-2025-66376": {
|
|
11563
11777
|
"name": "Synacor Zimbra Collaboration Suite (ZCS) Cross-Site Scripting Vulnerability",
|
|
@@ -26200,7 +26414,19 @@
|
|
|
26200
26414
|
"ai_discovery_source": "human_researcher",
|
|
26201
26415
|
"ai_assist_factor": "none",
|
|
26202
26416
|
"new_control_requirements": [
|
|
26203
|
-
|
|
26417
|
+
{
|
|
26418
|
+
"id": "NEW-CTRL-001",
|
|
26419
|
+
"name": "CISA-KEV-RESPONSE-SLA",
|
|
26420
|
+
"description": "Enforce timely remediation of CISA KEV-listed RCE in Google Chrome and Chromium-based browsers before Chrome 149: KEV due-date as the binding SLA, not a 30-day default.",
|
|
26421
|
+
"evidence": "CVE-2026-11645 — Chromium V8 out-of-bounds read/write, CISA KEV-listed with confirmed in-the-wild exploitation (RWEP 60). Browser fleets patch on a release cadence rather than a KEV clock, so the binding date is the KEV due date, not the next scheduled Chrome rollout.",
|
|
26422
|
+
"gap_closes": [
|
|
26423
|
+
"ISO-27001-2022-A.8.8",
|
|
26424
|
+
"NIST-800-53-SI-2",
|
|
26425
|
+
"AU-ISM-1546",
|
|
26426
|
+
"NIS2-Art21-vulnerability-handling",
|
|
26427
|
+
"DORA-Art-9"
|
|
26428
|
+
]
|
|
26429
|
+
}
|
|
26204
26430
|
],
|
|
26205
26431
|
"_auto_imported": false,
|
|
26206
26432
|
"_intake_method": "manual-verified-curation"
|
|
@@ -26240,7 +26466,16 @@
|
|
|
26240
26466
|
"ai_discovery_source": "human_researcher",
|
|
26241
26467
|
"ai_assist_factor": "none",
|
|
26242
26468
|
"new_control_requirements": [
|
|
26243
|
-
|
|
26469
|
+
{
|
|
26470
|
+
"id": "NEW-CTRL-001",
|
|
26471
|
+
"name": "CISA-KEV-RESPONSE-SLA",
|
|
26472
|
+
"description": "Enforce timely remediation of CISA KEV-listed Privilege Escalation in Cisco Catalyst SD-WAN Manager (formerly SD-WAN vManage) and SD-WAN vSmart Controller across the affected 20: KEV due-date as the binding SLA, not a 30-day default.",
|
|
26473
|
+
"evidence": "CVE-2026-20245 — Cisco Catalyst SD-WAN Manager root command execution via improper output encoding, CISA KEV-listed with confirmed exploitation (RWEP 56). Network-management appliances sit outside the OS patch pipeline these controls assume, so the remediation tempo has to be stated for the appliance estate explicitly.",
|
|
26474
|
+
"gap_closes": [
|
|
26475
|
+
"AU-ISM-1546",
|
|
26476
|
+
"DORA-Art-9"
|
|
26477
|
+
]
|
|
26478
|
+
}
|
|
26244
26479
|
],
|
|
26245
26480
|
"_auto_imported": false,
|
|
26246
26481
|
"_intake_method": "manual-verified-curation"
|
|
@@ -26590,7 +26825,18 @@
|
|
|
26590
26825
|
"ai_discovery_source": "human_researcher",
|
|
26591
26826
|
"ai_assist_factor": "none",
|
|
26592
26827
|
"new_control_requirements": [
|
|
26593
|
-
|
|
26828
|
+
{
|
|
26829
|
+
"id": "NEW-CTRL-001",
|
|
26830
|
+
"name": "CISA-KEV-RESPONSE-SLA",
|
|
26831
|
+
"description": "Enforce timely remediation of CISA KEV-listed Access Control Bypass in Arista EOS - all release trains: KEV due-date as the binding SLA, not a 30-day default.",
|
|
26832
|
+
"evidence": "CVE-2026-7473 — Arista EOS tunnel-decapsulation access-control bypass via incomplete comparison, CISA KEV-listed with confirmed exploitation (RWEP 69), affecting all release trains. Arista states no software fix or upgrade path is planned, so patch_available is false: the only mitigation is MAC/IP access-control lists on the affected switches or upstream devices that drop unexpected tunnel types. The KEV deadline therefore has to be met by deploying and evidencing that ACL, which is precisely the documented-compensating-control limb of the SLA rather than a patch window.",
|
|
26833
|
+
"gap_closes": [
|
|
26834
|
+
"NIST-800-53-SI-2",
|
|
26835
|
+
"AU-ISM-1546",
|
|
26836
|
+
"DORA-Art-9",
|
|
26837
|
+
"UK-CAF-B4"
|
|
26838
|
+
]
|
|
26839
|
+
}
|
|
26594
26840
|
],
|
|
26595
26841
|
"_auto_imported": false,
|
|
26596
26842
|
"_intake_method": "manual-verified-curation"
|
package/lib/framework-gap.js
CHANGED
|
@@ -297,7 +297,25 @@ function gapReport(frameworkIds, threatScenario, controlGaps, cveCatalog = {}, o
|
|
|
297
297
|
const lessonEntry = Object.entries(lessons)
|
|
298
298
|
.find(([id]) => id.toLowerCase() === scenario);
|
|
299
299
|
const newControls = (lessonEntry && Array.isArray(lessonEntry[1].new_control_requirements))
|
|
300
|
-
? lessonEntry[1].new_control_requirements
|
|
300
|
+
? lessonEntry[1].new_control_requirements
|
|
301
|
+
// Three catalog entries held a bare string where the schema expects a
|
|
302
|
+
// control object, which rendered as "- undefined undefined:" the moment
|
|
303
|
+
// this section started being shown. Emitting a malformed record is worse
|
|
304
|
+
// than omitting it, so drop anything the renderer cannot print.
|
|
305
|
+
//
|
|
306
|
+
// Every field the renderer interpolates has to be checked, not just the
|
|
307
|
+
// identifying one: guarding `id` alone still let `{ id: 'NEW-X' }` reach
|
|
308
|
+
// the output as "NEW-X undefined:", so the guard would have covered the
|
|
309
|
+
// bare-string case that prompted it and nothing else. The data itself is
|
|
310
|
+
// fixed; the catalog test fails on the shape so a malformed record cannot
|
|
311
|
+
// hide behind this filter.
|
|
312
|
+
.filter(c =>
|
|
313
|
+
c && typeof c === 'object' &&
|
|
314
|
+
typeof c.id === 'string' && c.id.trim() !== '' &&
|
|
315
|
+
typeof c.name === 'string' && c.name.trim() !== '' &&
|
|
316
|
+
typeof c.description === 'string' && c.description.trim() !== ''
|
|
317
|
+
)
|
|
318
|
+
.map(c => ({
|
|
301
319
|
id: c.id,
|
|
302
320
|
name: c.name,
|
|
303
321
|
requirement: c.description,
|
package/manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "exceptd-security",
|
|
3
|
-
"version": "0.19.
|
|
3
|
+
"version": "0.19.5",
|
|
4
4
|
"description": "AI security skills grounded in mid-2026 threat reality, not stale framework documentation",
|
|
5
5
|
"homepage": "https://exceptd.com",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
],
|
|
58
58
|
"last_threat_review": "2026-05-15",
|
|
59
59
|
"signature": "0H+JfyUVmo/pVFEi5rLENATHjlukPVUqnOWmNPEH77wm8svKGK0aNJ46k6QU5GdHb8c9X9pVJKiuhON6AxDjDw==",
|
|
60
|
-
"signed_at": "2026-08-
|
|
60
|
+
"signed_at": "2026-08-09T03:51:59.487Z",
|
|
61
61
|
"cwe_refs": [
|
|
62
62
|
"CWE-125",
|
|
63
63
|
"CWE-362",
|
|
@@ -133,7 +133,7 @@
|
|
|
133
133
|
],
|
|
134
134
|
"last_threat_review": "2026-06-10",
|
|
135
135
|
"signature": "hnKY1LYEKUurrzJIFcvwCZpclpk/XT8fMVJeCKqzrpOpfgov2d3AciuiEky85PhREzAmYGFfk2sLRC6ayJ6UDw==",
|
|
136
|
-
"signed_at": "2026-08-
|
|
136
|
+
"signed_at": "2026-08-09T03:51:59.489Z",
|
|
137
137
|
"cwe_refs": [
|
|
138
138
|
"CWE-1039",
|
|
139
139
|
"CWE-1426",
|
|
@@ -215,7 +215,7 @@
|
|
|
215
215
|
],
|
|
216
216
|
"last_threat_review": "2026-06-10",
|
|
217
217
|
"signature": "uiJt3Oj0lSLr7Nm0OoM2qI/z/oAIAiPwMfP12s97jVYeA7xfOlU21fc7zidT/9YulunfaSjBSAlgv6paWmosBg==",
|
|
218
|
-
"signed_at": "2026-08-
|
|
218
|
+
"signed_at": "2026-08-09T03:51:59.490Z",
|
|
219
219
|
"cwe_refs": [
|
|
220
220
|
"CWE-22",
|
|
221
221
|
"CWE-345",
|
|
@@ -269,7 +269,7 @@
|
|
|
269
269
|
"framework_gaps": [],
|
|
270
270
|
"last_threat_review": "2026-06-10",
|
|
271
271
|
"signature": "80LN540R3z/gcIMCF/8H6nh2V6xdudctYKE74Ve7bqecyPUQf2NfCA/8T9L18tIz7BTyBkiI/V5JcG4ClgNyCQ==",
|
|
272
|
-
"signed_at": "2026-08-
|
|
272
|
+
"signed_at": "2026-08-09T03:51:59.491Z"
|
|
273
273
|
},
|
|
274
274
|
{
|
|
275
275
|
"name": "compliance-theater",
|
|
@@ -301,7 +301,7 @@
|
|
|
301
301
|
],
|
|
302
302
|
"last_threat_review": "2026-06-10",
|
|
303
303
|
"signature": "Tsat4OgtCJ6yGJQeIQnz+XTU11B8SLgbPe1zmb2UFOzxqlBnRoKeOzIVwFsv7wM0mP1bXQvQgFFpIOxN2VeTCQ==",
|
|
304
|
-
"signed_at": "2026-08-
|
|
304
|
+
"signed_at": "2026-08-09T03:51:59.491Z"
|
|
305
305
|
},
|
|
306
306
|
{
|
|
307
307
|
"name": "exploit-scoring",
|
|
@@ -332,7 +332,7 @@
|
|
|
332
332
|
],
|
|
333
333
|
"last_threat_review": "2026-06-10",
|
|
334
334
|
"signature": "zxsj3SExhBJ+A7UDZEI4uWl4OCbnn5+ddCRCalhlHKFyRML9fcB9qd1v9a+hDoeVJXGr/OBXHR3MdyD8XEhrDQ==",
|
|
335
|
-
"signed_at": "2026-08-
|
|
335
|
+
"signed_at": "2026-08-09T03:51:59.492Z"
|
|
336
336
|
},
|
|
337
337
|
{
|
|
338
338
|
"name": "rag-pipeline-security",
|
|
@@ -374,7 +374,7 @@
|
|
|
374
374
|
],
|
|
375
375
|
"last_threat_review": "2026-06-10",
|
|
376
376
|
"signature": "lrj8/nJWYzgeOYPF9Ax59A0mxCXWKKhH9QI+88KQNiKly0Hq+pA5wdtL0J9LY24YrVWmqEhpSHueGlj03UNOAA==",
|
|
377
|
-
"signed_at": "2026-08-
|
|
377
|
+
"signed_at": "2026-08-09T03:51:59.492Z",
|
|
378
378
|
"cwe_refs": [
|
|
379
379
|
"CWE-1395",
|
|
380
380
|
"CWE-1426"
|
|
@@ -441,7 +441,7 @@
|
|
|
441
441
|
],
|
|
442
442
|
"last_threat_review": "2026-06-10",
|
|
443
443
|
"signature": "nqqZUnu7ZocLNJKs3KJO6NnoC8MgmS1iGP9TGrv51e+trjqb4Gf2mAjCTe7pINFivWDK00A0ZHazaMAKKbaNCA==",
|
|
444
|
-
"signed_at": "2026-08-
|
|
444
|
+
"signed_at": "2026-08-09T03:51:59.493Z",
|
|
445
445
|
"cwe_refs": [
|
|
446
446
|
"CWE-918"
|
|
447
447
|
],
|
|
@@ -482,7 +482,7 @@
|
|
|
482
482
|
"framework_gaps": [],
|
|
483
483
|
"last_threat_review": "2026-06-10",
|
|
484
484
|
"signature": "ZfFXIDjwGDwlZA30TOMPmNr0IK/sydbsiox7LYU0pGkaRlQW18/oSjkHZRgiQpP5yzQhuFsKdztA7Ec6BDQLAA==",
|
|
485
|
-
"signed_at": "2026-08-
|
|
485
|
+
"signed_at": "2026-08-09T03:51:59.494Z",
|
|
486
486
|
"cwe_refs": [
|
|
487
487
|
"CWE-1188"
|
|
488
488
|
],
|
|
@@ -517,7 +517,7 @@
|
|
|
517
517
|
"framework_gaps": [],
|
|
518
518
|
"last_threat_review": "2026-06-10",
|
|
519
519
|
"signature": "CtiEhtzaqg/hCGX1wmgEGq0O6o+UNf9RAM3xxn0rQVEkFt/IEmyYqsWd1qjpqMdp8kbEXgAsd816AwFwLYMaAA==",
|
|
520
|
-
"signed_at": "2026-08-
|
|
520
|
+
"signed_at": "2026-08-09T03:51:59.494Z",
|
|
521
521
|
"forward_watch": [
|
|
522
522
|
"New AI attack classes as ATLAS v6 publishes",
|
|
523
523
|
"Post-quantum adversary capability timeline",
|
|
@@ -558,7 +558,7 @@
|
|
|
558
558
|
"framework_gaps": [],
|
|
559
559
|
"last_threat_review": "2026-08-05",
|
|
560
560
|
"signature": "Eu2AnT4xyZH9n3OKjm5S9vaiHqUE+1N3oLAQbbt78OCp2HnAQMvqBkUn9rgl4Il7Il7yZW8N7c8hq3mkst+EAA==",
|
|
561
|
-
"signed_at": "2026-08-
|
|
561
|
+
"signed_at": "2026-08-09T03:51:59.495Z",
|
|
562
562
|
"d3fend_refs": [
|
|
563
563
|
"D3-EAL",
|
|
564
564
|
"D3-EFA",
|
|
@@ -600,7 +600,7 @@
|
|
|
600
600
|
"framework_gaps": [],
|
|
601
601
|
"last_threat_review": "2026-06-10",
|
|
602
602
|
"signature": "tlvk8q1fa1scoDsJMZnigCoRNO3dqoK03Ve8tuYE2/nPwAMAGlofHpoE0mI0BX4pPODPgCfSjzgKEUn6HkcZDw==",
|
|
603
|
-
"signed_at": "2026-08-
|
|
603
|
+
"signed_at": "2026-08-09T03:51:59.496Z",
|
|
604
604
|
"forward_watch": [
|
|
605
605
|
"New CISA KEV entries",
|
|
606
606
|
"New ATLAS TTP additions in each ATLAS release",
|
|
@@ -669,7 +669,7 @@
|
|
|
669
669
|
],
|
|
670
670
|
"last_threat_review": "2026-08-05",
|
|
671
671
|
"signature": "DNXmzLVK71XI/b9mkIBw30KVdVV5Wc9/0o/pP35RkferqtvlsMHjj4WJpoGXpIu8/hJyuMJRQrV7pzfR68iIAg==",
|
|
672
|
-
"signed_at": "2026-08-
|
|
672
|
+
"signed_at": "2026-08-09T03:51:59.496Z",
|
|
673
673
|
"cwe_refs": [
|
|
674
674
|
"CWE-327"
|
|
675
675
|
],
|
|
@@ -719,7 +719,7 @@
|
|
|
719
719
|
],
|
|
720
720
|
"last_threat_review": "2026-06-10",
|
|
721
721
|
"signature": "AzyfBZd5bxpQpaFb/S5ZJI2/NjeACLuq/u8GzKHehhlggWUqILIrS4aJ6eXn0I3UBhuXRcNBBx1mXriCSmhQAA==",
|
|
722
|
-
"signed_at": "2026-08-
|
|
722
|
+
"signed_at": "2026-08-09T03:51:59.497Z"
|
|
723
723
|
},
|
|
724
724
|
{
|
|
725
725
|
"name": "security-maturity-tiers",
|
|
@@ -759,7 +759,7 @@
|
|
|
759
759
|
],
|
|
760
760
|
"last_threat_review": "2026-08-05",
|
|
761
761
|
"signature": "8JHth6QjMcUuAD069/QvpMxgRMG+L/PVTE68/UdX9kG4SNA20ds7vHU15YzMNBmWWgiUvpLAE6hzctz1N7bWCg==",
|
|
762
|
-
"signed_at": "2026-08-
|
|
762
|
+
"signed_at": "2026-08-09T03:51:59.497Z",
|
|
763
763
|
"cwe_refs": [
|
|
764
764
|
"CWE-1188"
|
|
765
765
|
],
|
|
@@ -813,7 +813,7 @@
|
|
|
813
813
|
"framework_gaps": [],
|
|
814
814
|
"last_threat_review": "2026-05-11",
|
|
815
815
|
"signature": "iJWevUBurLvt2v8X+Ch2eHmZkPWpKeAtIpxTIP4MwbUHyco3igDeBywJCyaR2vURYRx8LkzzIMM8DxQM4LAXBQ==",
|
|
816
|
-
"signed_at": "2026-08-
|
|
816
|
+
"signed_at": "2026-08-09T03:51:59.498Z"
|
|
817
817
|
},
|
|
818
818
|
{
|
|
819
819
|
"name": "attack-surface-pentest",
|
|
@@ -889,7 +889,7 @@
|
|
|
889
889
|
"Pwn2Own Berlin 2026 (disclosed 2026-05-14, embargo ends 2026-08-12) — Microsoft Edge 4-bug sandbox escape by Orange Tsai (DEVCORE); forward-watch only (browser sandbox, out of current playbook scope); track Microsoft Edge security advisory and KEV add"
|
|
890
890
|
],
|
|
891
891
|
"signature": "GuHxmoEU97+lQfU11chYwXVQhSMpddU0OS1iLkYDmEJhBkHRWWaOa2emYJoVUBDB9v/PTKcFEuEraZwYg+8nCw==",
|
|
892
|
-
"signed_at": "2026-08-
|
|
892
|
+
"signed_at": "2026-08-09T03:51:59.499Z"
|
|
893
893
|
},
|
|
894
894
|
{
|
|
895
895
|
"name": "fuzz-testing-strategy",
|
|
@@ -950,7 +950,7 @@
|
|
|
950
950
|
"OSS-Fuzz-Gen / AI-assisted harness generation becoming the default expectation for OSS maintainers"
|
|
951
951
|
],
|
|
952
952
|
"signature": "R2jcBorSMWFuZKHUugWEni9q/W7Qk73Kg0SztXlySYu9+D2Ee43gyYsUy0nSa0oCTS8pyuhFiFv2XN0EaweTBQ==",
|
|
953
|
-
"signed_at": "2026-08-
|
|
953
|
+
"signed_at": "2026-08-09T03:51:59.500Z"
|
|
954
954
|
},
|
|
955
955
|
{
|
|
956
956
|
"name": "dlp-gap-analysis",
|
|
@@ -1028,7 +1028,7 @@
|
|
|
1028
1028
|
"Quebec Law 25, India DPDPA, KSA PDPL enforcement actions naming AI-tool prompt data as in-scope personal information"
|
|
1029
1029
|
],
|
|
1030
1030
|
"signature": "uIQdYlbKIQw8qQRDeGnXv4D/wuPAvYFRzos3kqkyELx+v9rGmfmT7w5s1608lpJxXzGLIA7BSN2/wLJJAZmXCg==",
|
|
1031
|
-
"signed_at": "2026-08-
|
|
1031
|
+
"signed_at": "2026-08-09T03:51:59.500Z"
|
|
1032
1032
|
},
|
|
1033
1033
|
{
|
|
1034
1034
|
"name": "supply-chain-integrity",
|
|
@@ -1112,7 +1112,7 @@
|
|
|
1112
1112
|
"Pwn2Own Berlin 2026 (disclosed 2026-05-14, embargo ends 2026-08-12) — NVIDIA Megatron Bridge path traversal by haehae; AI training-stack file-system trust boundary; track patch and SBOM-attestation impact"
|
|
1113
1113
|
],
|
|
1114
1114
|
"signature": "4EMvqqcYHnM+9fmlS156Utl3T248EqHdiB89zVyW8+wUYHAU/VLUOr27JiiSmj5iZrdY5Prq7t9Hsk3LuVx5Aw==",
|
|
1115
|
-
"signed_at": "2026-08-
|
|
1115
|
+
"signed_at": "2026-08-09T03:51:59.501Z"
|
|
1116
1116
|
},
|
|
1117
1117
|
{
|
|
1118
1118
|
"name": "defensive-countermeasure-mapping",
|
|
@@ -1169,7 +1169,7 @@
|
|
|
1169
1169
|
],
|
|
1170
1170
|
"last_threat_review": "2026-06-10",
|
|
1171
1171
|
"signature": "W8kg2Okd/VF521VmeVFGK2TmXkFPycuwgYdyNxLU2fMN+sR9Aals/X+Xqr/prrGEsqWnZsCInSq1TYzFr0wiDg==",
|
|
1172
|
-
"signed_at": "2026-08-
|
|
1172
|
+
"signed_at": "2026-08-09T03:51:59.501Z"
|
|
1173
1173
|
},
|
|
1174
1174
|
{
|
|
1175
1175
|
"name": "identity-assurance",
|
|
@@ -1243,7 +1243,7 @@
|
|
|
1243
1243
|
],
|
|
1244
1244
|
"last_threat_review": "2026-05-11",
|
|
1245
1245
|
"signature": "UV3458QXSkEpenzrOmdlTTfPHUD4hNyKMDHoeZDq/kiFb4mAG0ghQGTTgI9Ru8cJbSmYM1++m9N5TFIJ6JJPBg==",
|
|
1246
|
-
"signed_at": "2026-08-
|
|
1246
|
+
"signed_at": "2026-08-09T03:51:59.502Z"
|
|
1247
1247
|
},
|
|
1248
1248
|
{
|
|
1249
1249
|
"name": "ot-ics-security",
|
|
@@ -1302,7 +1302,7 @@
|
|
|
1302
1302
|
"d3fend_refs": [],
|
|
1303
1303
|
"last_threat_review": "2026-06-10",
|
|
1304
1304
|
"signature": "1PFZXMfQwM0dHsZQfo+rg5hJB00dfeOL41VA3J8gNF6cCUpplw9vQuZfODX/SwXI/WmDQwM9G2sd1X/i7LG9DA==",
|
|
1305
|
-
"signed_at": "2026-08-
|
|
1305
|
+
"signed_at": "2026-08-09T03:51:59.503Z"
|
|
1306
1306
|
},
|
|
1307
1307
|
{
|
|
1308
1308
|
"name": "coordinated-vuln-disclosure",
|
|
@@ -1362,7 +1362,7 @@
|
|
|
1362
1362
|
"NYDFS 23 NYCRR 500 amendments potentially adding explicit CVD program requirements"
|
|
1363
1363
|
],
|
|
1364
1364
|
"signature": "5b3J9mk/iEi6OzeC0O2hw/K/ofTrH8519l+ZUpK8gqB/v0XbDFceIIBPB8TQM8wCct5iG0Krb7OCDSIbU0jVBw==",
|
|
1365
|
-
"signed_at": "2026-08-
|
|
1365
|
+
"signed_at": "2026-08-09T03:51:59.503Z"
|
|
1366
1366
|
},
|
|
1367
1367
|
{
|
|
1368
1368
|
"name": "threat-modeling-methodology",
|
|
@@ -1416,7 +1416,7 @@
|
|
|
1416
1416
|
"PASTA v2 updates incorporating AI/ML application threats"
|
|
1417
1417
|
],
|
|
1418
1418
|
"signature": "fibgNRd+STEyN3ZlnIxJddfaOXISYosdjoxkQ/oNVTP3GKhN1A4c3Jh0HZPbhTdjhrbJM/mE5ufiIOs7+RCMCQ==",
|
|
1419
|
-
"signed_at": "2026-08-
|
|
1419
|
+
"signed_at": "2026-08-09T03:51:59.504Z"
|
|
1420
1420
|
},
|
|
1421
1421
|
{
|
|
1422
1422
|
"name": "webapp-security",
|
|
@@ -1499,7 +1499,7 @@
|
|
|
1499
1499
|
],
|
|
1500
1500
|
"last_threat_review": "2026-06-10",
|
|
1501
1501
|
"signature": "3qtC0X8QR9YufDfeL/AUiw3EeJwvSfSrUWojndEZVmeJ3MtM12I94OJmaQT1AWaTRWVa9f91owgLl6AgoTNVAA==",
|
|
1502
|
-
"signed_at": "2026-08-
|
|
1502
|
+
"signed_at": "2026-08-09T03:51:59.505Z",
|
|
1503
1503
|
"forward_watch": [
|
|
1504
1504
|
"NGINX Rift CVE-2026-42945 (disclosed 2026-05-13, source depthfirst) — KEV-watch predicted CISA KEV listing by 2026-05-29; AI-assisted discovery angle; track for active-exploitation confirmation and patch advisory affecting front-door web app deployments"
|
|
1505
1505
|
]
|
|
@@ -1559,7 +1559,7 @@
|
|
|
1559
1559
|
],
|
|
1560
1560
|
"last_threat_review": "2026-05-15",
|
|
1561
1561
|
"signature": "SBB7c3wNYfIdkyOp4g4nW0WP7xS+YokMzg32aaeJdbf14LTGQRzQUvSqb2TCj2HFUSHESOyKT1JpkAfyHLSQBQ==",
|
|
1562
|
-
"signed_at": "2026-08-
|
|
1562
|
+
"signed_at": "2026-08-09T03:51:59.505Z"
|
|
1563
1563
|
},
|
|
1564
1564
|
{
|
|
1565
1565
|
"name": "sector-healthcare",
|
|
@@ -1626,7 +1626,7 @@
|
|
|
1626
1626
|
],
|
|
1627
1627
|
"last_threat_review": "2026-06-10",
|
|
1628
1628
|
"signature": "Z/lPfIH5ARAOoeR81ATj6lQlekZP/8tzg23Pr1H9BxxdQedRsLGDNVIHu81qNuoA7GNRRMtxXpwrS7fXbMh5Cw==",
|
|
1629
|
-
"signed_at": "2026-08-
|
|
1629
|
+
"signed_at": "2026-08-09T03:51:59.506Z"
|
|
1630
1630
|
},
|
|
1631
1631
|
{
|
|
1632
1632
|
"name": "sector-financial",
|
|
@@ -1715,7 +1715,7 @@
|
|
|
1715
1715
|
"TIBER-EU framework v2.0 alignment with DORA TLPT RTS (JC 2024/40); cross-recognition with CBEST and iCAST"
|
|
1716
1716
|
],
|
|
1717
1717
|
"signature": "kPV8cEpIUAMKY2USvFxAn6JkkRMlBAM2mGLy6ViS9O3rv+3dsAgBqKgcBTBbuSoMZgY2KKruoG+SkrR3aoViAg==",
|
|
1718
|
-
"signed_at": "2026-08-
|
|
1718
|
+
"signed_at": "2026-08-09T03:51:59.507Z"
|
|
1719
1719
|
},
|
|
1720
1720
|
{
|
|
1721
1721
|
"name": "sector-federal-government",
|
|
@@ -1792,7 +1792,7 @@
|
|
|
1792
1792
|
"Australia PSPF 2024 revision and ISM quarterly updates — track for Essential Eight Maturity Level requirements for federal entities"
|
|
1793
1793
|
],
|
|
1794
1794
|
"signature": "CbxW5qhlaiqf+P3xIemSHlMz9OoWat2srh7F3+nAIsa0Y4nBr6WCXZXZlUUjrjptZ3Ny+Cw485HMLWRO9qbcBw==",
|
|
1795
|
-
"signed_at": "2026-08-
|
|
1795
|
+
"signed_at": "2026-08-09T03:51:59.508Z"
|
|
1796
1796
|
},
|
|
1797
1797
|
{
|
|
1798
1798
|
"name": "sector-energy",
|
|
@@ -1866,7 +1866,7 @@
|
|
|
1866
1866
|
"ICS-CERT advisory feed (https://www.cisa.gov/news-events/cybersecurity-advisories/ics-advisories) for vendor CVEs in Siemens, Rockwell, Schneider Electric, ABB, GE Vernova, Hitachi Energy, AVEVA / OSIsoft PI"
|
|
1867
1867
|
],
|
|
1868
1868
|
"signature": "lVHORFJzvkxNqJfT34inW28BzlA8dCWDfo0JS9tsiNW3PUxdijZS22g4GMbQJgaSKGv7F3ag5rWk75O+IChUAw==",
|
|
1869
|
-
"signed_at": "2026-08-
|
|
1869
|
+
"signed_at": "2026-08-09T03:51:59.509Z"
|
|
1870
1870
|
},
|
|
1871
1871
|
{
|
|
1872
1872
|
"name": "sector-telecom",
|
|
@@ -1952,7 +1952,7 @@
|
|
|
1952
1952
|
"O-RAN SFG / WG11 security specifications"
|
|
1953
1953
|
],
|
|
1954
1954
|
"signature": "NAtyzfLPXlUuB78Snb9nWmbZalC1CNlIYN9rYhdEmtB/xQGC6vVnThgrEAHlm7v/jMCFuknvEpUHKdscUnUADw==",
|
|
1955
|
-
"signed_at": "2026-08-
|
|
1955
|
+
"signed_at": "2026-08-09T03:51:59.509Z"
|
|
1956
1956
|
},
|
|
1957
1957
|
{
|
|
1958
1958
|
"name": "api-security",
|
|
@@ -2031,7 +2031,7 @@
|
|
|
2031
2031
|
],
|
|
2032
2032
|
"last_threat_review": "2026-06-10",
|
|
2033
2033
|
"signature": "hyLAsPCAkUkhNeaaFtgSg5XsKs2L8HuFoPka/Urzel54XPMQ0F3MwRD7j/ZURzIHQxvrAxmS3OCXEsBrgcFxAw==",
|
|
2034
|
-
"signed_at": "2026-08-
|
|
2034
|
+
"signed_at": "2026-08-09T03:51:59.510Z",
|
|
2035
2035
|
"forward_watch": [
|
|
2036
2036
|
"NGINX Rift CVE-2026-42945 (disclosed 2026-05-13, source depthfirst) — KEV-watch predicted CISA KEV listing by 2026-05-29; track for active-exploitation confirmation and patch advisory affecting API gateway / reverse-proxy deployments",
|
|
2037
2037
|
"Pwn2Own Berlin 2026 (disclosed 2026-05-14, embargo ends 2026-08-12) — LiteLLM 3-bug SSRF + Code Injection chain by k3vg3n; LLM-proxy API surface; track upstream patch and CVE assignments",
|
|
@@ -2126,7 +2126,7 @@
|
|
|
2126
2126
|
"CISA KEV additions for cloud-control-plane CVEs (IMDSv1 abuses, federation token mishandling, cross-tenant boundary failures); CISA Cybersecurity Advisories for cross-cloud advisories"
|
|
2127
2127
|
],
|
|
2128
2128
|
"signature": "MfijBq1nzlyPQWf5/EcTn5Xx7ThdZ9BT8/W/+daxhATfMSoSTrMn9pYh1R83Chr9n2ahQeMoPUkSxL7Cr9V3Dw==",
|
|
2129
|
-
"signed_at": "2026-08-
|
|
2129
|
+
"signed_at": "2026-08-09T03:51:59.511Z"
|
|
2130
2130
|
},
|
|
2131
2131
|
{
|
|
2132
2132
|
"name": "container-runtime-security",
|
|
@@ -2198,7 +2198,7 @@
|
|
|
2198
2198
|
],
|
|
2199
2199
|
"last_threat_review": "2026-06-10",
|
|
2200
2200
|
"signature": "QJ8RF3ifPFc0mr3gYkloHqg5nuYe1GS4h+xbKYDCkM+HbA3iTd5keJ59P2P3z8TwVdOt8XM8WOsx6aRUrFL0Cw==",
|
|
2201
|
-
"signed_at": "2026-08-
|
|
2201
|
+
"signed_at": "2026-08-09T03:51:59.511Z",
|
|
2202
2202
|
"forward_watch": [
|
|
2203
2203
|
"Pwn2Own Berlin 2026 (disclosed 2026-05-14, embargo ends 2026-08-12) — NVIDIA Container Toolkit container escape ($50K award) by chompie / IBM X-Force XOR; high-severity container/hypervisor boundary break; track patch and KEV add post-embargo"
|
|
2204
2204
|
]
|
|
@@ -2279,7 +2279,7 @@
|
|
|
2279
2279
|
"MITRE ATLAS v2026.07 (released June 2026) is additive over v2026.05 — it adds AML.T0113 (Steal Web Session Cookie), AML.T0091.001 (Use Alternate Authentication Material: Web Session Cookie), and AML.T0114 (AI Service Web Interface) and refreshes AML.T0054 (LLM Jailbreak), with no technique-ID removals. Earlier releases shipped the AML.T0010 sub-technique expansion and agentic-AI techniques (\"Publish Poisoned AI Agent Tool\", \"Escape to Host\") this forecast tracked. Forward watch: subsequent monthly ATLAS releases — track next-cadence updates to agentic-AI TTPs and MLOps-pipeline-specific techniques"
|
|
2280
2280
|
],
|
|
2281
2281
|
"signature": "e4uV8JvtEbC/lKGqJ6Y3ugEetF6aEv7R7CwJ/Y9N4thWNg8fconRcOPDS+045PW8xmcAqAbkSi+I4N1E6EPTAA==",
|
|
2282
|
-
"signed_at": "2026-08-
|
|
2282
|
+
"signed_at": "2026-08-09T03:51:59.512Z"
|
|
2283
2283
|
},
|
|
2284
2284
|
{
|
|
2285
2285
|
"name": "incident-response-playbook",
|
|
@@ -2353,7 +2353,7 @@
|
|
|
2353
2353
|
"NYDFS 23 NYCRR 500.17 amendments tightening ransom-payment 24h disclosure operationalization"
|
|
2354
2354
|
],
|
|
2355
2355
|
"signature": "asDHEy7Y2Bj4ikCkpP5MHRe33TIY8aQ1a+KN1UZgl89g9LyLcXzSg/weACafxJNzhOUkXnKBAtBrQIKW6p6nDQ==",
|
|
2356
|
-
"signed_at": "2026-08-
|
|
2356
|
+
"signed_at": "2026-08-09T03:51:59.512Z"
|
|
2357
2357
|
},
|
|
2358
2358
|
{
|
|
2359
2359
|
"name": "ransomware-response",
|
|
@@ -2433,7 +2433,7 @@
|
|
|
2433
2433
|
],
|
|
2434
2434
|
"last_threat_review": "2026-06-10",
|
|
2435
2435
|
"signature": "UTDsSMDvW5cpuSDBgZO5AzKowXWAR3WqeUeqyHXaikxslC6YBDL/gIojm9Km3/mgOS6pD5JKb/LLcfb4T/r4BQ==",
|
|
2436
|
-
"signed_at": "2026-08-
|
|
2436
|
+
"signed_at": "2026-08-09T03:51:59.513Z"
|
|
2437
2437
|
},
|
|
2438
2438
|
{
|
|
2439
2439
|
"name": "email-security-anti-phishing",
|
|
@@ -2501,7 +2501,7 @@
|
|
|
2501
2501
|
],
|
|
2502
2502
|
"last_threat_review": "2026-05-18",
|
|
2503
2503
|
"signature": "FVBn4ex2qPIo9SHMVJ6tntoz4tVwjbIq3m6wDjjZyv2JODlS+90GBYCOkNamxxkmw/6de6SMs0YHQiF/xjo/DQ==",
|
|
2504
|
-
"signed_at": "2026-08-
|
|
2504
|
+
"signed_at": "2026-08-09T03:51:59.514Z"
|
|
2505
2505
|
},
|
|
2506
2506
|
{
|
|
2507
2507
|
"name": "age-gates-child-safety",
|
|
@@ -2576,7 +2576,7 @@
|
|
|
2576
2576
|
"US state adult-site age-verification laws — 19+ states by mid-2026 (TX HB 18 upheld by SCOTUS June 2025 in Free Speech Coalition v. Paxton); track ongoing challenges in remaining states"
|
|
2577
2577
|
],
|
|
2578
2578
|
"signature": "l/jeAAnb7H2GQzp1x05bsdZwzC0NNTBi3ZuiwgDly5EVSoikbnVWpx921bT5G3OPkx4dqs2PohlvTG0gLxCrAA==",
|
|
2579
|
-
"signed_at": "2026-08-
|
|
2579
|
+
"signed_at": "2026-08-09T03:51:59.514Z"
|
|
2580
2580
|
},
|
|
2581
2581
|
{
|
|
2582
2582
|
"name": "cloud-iam-incident",
|
|
@@ -2656,7 +2656,7 @@
|
|
|
2656
2656
|
],
|
|
2657
2657
|
"last_threat_review": "2026-05-15",
|
|
2658
2658
|
"signature": "vrMvYLdYJLlEAC8YvOb/g3LJ8gU1YmYewZ94J5AFgxxh2EiDyszqo3D/WVpt5NTrDSS/N5OgOf5Vwom/KGlMCA==",
|
|
2659
|
-
"signed_at": "2026-08-
|
|
2659
|
+
"signed_at": "2026-08-09T03:51:59.515Z",
|
|
2660
2660
|
"forward_watch": [
|
|
2661
2661
|
"AWS IAM Identity Center session-policy refresh and step-up-on-admin enforcement (anticipated 2026-H2 release)",
|
|
2662
2662
|
"GCP Workload Identity Federation principal-set attribute mapping tightening (post-2026 Q3 Federation hardening guide)",
|
|
@@ -2750,7 +2750,7 @@
|
|
|
2750
2750
|
],
|
|
2751
2751
|
"last_threat_review": "2026-05-15",
|
|
2752
2752
|
"signature": "9mfDtMApMAg9V/lmwpniNxo/6gNZoOEoYDfyFvyWvKrPMtc7H9F8uz06FVoARe/J49saAKTVXOurNE1D/KtpCQ==",
|
|
2753
|
-
"signed_at": "2026-08-
|
|
2753
|
+
"signed_at": "2026-08-09T03:51:59.516Z",
|
|
2754
2754
|
"forward_watch": [
|
|
2755
2755
|
"Entra ID conditional access evolution post-Midnight Blizzard — Microsoft's 2025-2026 commitments on legacy-tenant MFA enforcement and OAuth-app consent gating",
|
|
2756
2756
|
"Okta IPSIE (Interoperability Profile for Secure Identity in the Enterprise) OpenID Foundation working-group output and adoption timeline",
|
|
@@ -2822,7 +2822,7 @@
|
|
|
2822
2822
|
"d3fend_refs": [],
|
|
2823
2823
|
"last_threat_review": "2026-06-02",
|
|
2824
2824
|
"signature": "dOFgANMtHm64uSFRjMfeA0fWZS9ISwMTt59I2CbjaF1PgTtbtb8yg/f+3pC4eXcXIET0KPGxRRmENycfIz3rAw==",
|
|
2825
|
-
"signed_at": "2026-08-
|
|
2825
|
+
"signed_at": "2026-08-09T03:51:59.516Z"
|
|
2826
2826
|
},
|
|
2827
2827
|
{
|
|
2828
2828
|
"name": "mail-server-hardening",
|
|
@@ -2881,7 +2881,7 @@
|
|
|
2881
2881
|
"d3fend_refs": [],
|
|
2882
2882
|
"last_threat_review": "2026-06-02",
|
|
2883
2883
|
"signature": "5x8RGzKo/T2IbYnFkYMZs16ThD9a5FEdrKHsnwvtMuGxdyyfZsKNIJVWw2I8O0um0UOXwwkl17Z3zhch26ymCQ==",
|
|
2884
|
-
"signed_at": "2026-08-
|
|
2884
|
+
"signed_at": "2026-08-09T03:51:59.517Z"
|
|
2885
2885
|
},
|
|
2886
2886
|
{
|
|
2887
2887
|
"name": "network-trust",
|
|
@@ -2937,7 +2937,7 @@
|
|
|
2937
2937
|
"d3fend_refs": [],
|
|
2938
2938
|
"last_threat_review": "2026-06-02",
|
|
2939
2939
|
"signature": "C/RdmnGjXKreKiGkwJfUESIxUwQzisGJ9A7KBdE9cBRBHBYHkAcScV89L+Z3kOG032Qax6LeIQai7Lr3nrQBCA==",
|
|
2940
|
-
"signed_at": "2026-08-
|
|
2940
|
+
"signed_at": "2026-08-09T03:51:59.518Z"
|
|
2941
2941
|
},
|
|
2942
2942
|
{
|
|
2943
2943
|
"name": "audit-log-integrity",
|
|
@@ -2992,7 +2992,7 @@
|
|
|
2992
2992
|
"d3fend_refs": [],
|
|
2993
2993
|
"last_threat_review": "2026-06-02",
|
|
2994
2994
|
"signature": "T7sFREX7P2QYrau+eTNXKkrU2aJ91dsX6GQWVJeexJ9SqbyFHtAnIKo4r6F6VdELADyVjaRXKk/fLuyUaCkGBA==",
|
|
2995
|
-
"signed_at": "2026-08-
|
|
2995
|
+
"signed_at": "2026-08-09T03:51:59.518Z"
|
|
2996
2996
|
},
|
|
2997
2997
|
{
|
|
2998
2998
|
"name": "self-update-integrity",
|
|
@@ -3046,7 +3046,7 @@
|
|
|
3046
3046
|
"d3fend_refs": [],
|
|
3047
3047
|
"last_threat_review": "2026-06-02",
|
|
3048
3048
|
"signature": "BOQZ8G9LdyG/tfpz6rCU4THz5Dq2HGJkUV7uCqSTCMrqnXH6seNXKM41FWawYo0s2VUlXtRgaO7ETp5qgxw+CQ==",
|
|
3049
|
-
"signed_at": "2026-08-
|
|
3049
|
+
"signed_at": "2026-08-09T03:51:59.519Z"
|
|
3050
3050
|
},
|
|
3051
3051
|
{
|
|
3052
3052
|
"name": "multitenancy-isolation",
|
|
@@ -3104,7 +3104,7 @@
|
|
|
3104
3104
|
"d3fend_refs": [],
|
|
3105
3105
|
"last_threat_review": "2026-06-02",
|
|
3106
3106
|
"signature": "bncN0VE4ns0lxtPe48xDR33lerw54BPVkSwX7XlrLQcMHTrV94lmjO8z4ZP4Ko61n+KpuP2SNU8v9JT0bGMmAA==",
|
|
3107
|
-
"signed_at": "2026-08-
|
|
3107
|
+
"signed_at": "2026-08-09T03:51:59.520Z"
|
|
3108
3108
|
},
|
|
3109
3109
|
{
|
|
3110
3110
|
"name": "decompression-dos",
|
|
@@ -3162,7 +3162,7 @@
|
|
|
3162
3162
|
"d3fend_refs": [],
|
|
3163
3163
|
"last_threat_review": "2026-06-02",
|
|
3164
3164
|
"signature": "03i0ZO5ScHIOjGvDKUEsws6m+20fnlJrEhSBtMU7PJzQutrPpmW9gULE0wbayTD5H9URh5nSKZuuVjvjVhZNCg==",
|
|
3165
|
-
"signed_at": "2026-08-
|
|
3165
|
+
"signed_at": "2026-08-09T03:51:59.520Z"
|
|
3166
3166
|
},
|
|
3167
3167
|
{
|
|
3168
3168
|
"name": "log-injection-telemetry",
|
|
@@ -3217,7 +3217,7 @@
|
|
|
3217
3217
|
"d3fend_refs": [],
|
|
3218
3218
|
"last_threat_review": "2026-06-02",
|
|
3219
3219
|
"signature": "twTmA2l+Am2k2PCzB2DNxDQwoYlGopJp/3QgQwBsP7h2LF+uNudisqfuOVV/bYnWfrUhuYZUWbsR3mhzbJCUBw==",
|
|
3220
|
-
"signed_at": "2026-08-
|
|
3220
|
+
"signed_at": "2026-08-09T03:51:59.521Z"
|
|
3221
3221
|
},
|
|
3222
3222
|
{
|
|
3223
3223
|
"name": "privacy-consent-ops",
|
|
@@ -3272,11 +3272,11 @@
|
|
|
3272
3272
|
"d3fend_refs": [],
|
|
3273
3273
|
"last_threat_review": "2026-06-02",
|
|
3274
3274
|
"signature": "0sfKSVrIf555c9bDGkXB96fUClN52fMAMYoQsNQ9eUUSzDiWUwdou+q0gYt43nObtj3m9Yb9X6q3oCXDVMgUDg==",
|
|
3275
|
-
"signed_at": "2026-08-
|
|
3275
|
+
"signed_at": "2026-08-09T03:51:59.522Z"
|
|
3276
3276
|
}
|
|
3277
3277
|
],
|
|
3278
3278
|
"manifest_signature": {
|
|
3279
3279
|
"algorithm": "Ed25519",
|
|
3280
|
-
"signature_base64": "
|
|
3280
|
+
"signature_base64": "XKpTTy5N7cIABKP0ONcuNlVuDM/v//vU21G/0UH7hY2dZ+dEe2mjyH3WZ0gr+mZcrPqT0LX6MxS+1XnvBeaZDA=="
|
|
3281
3281
|
}
|
|
3282
3282
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blamejs/exceptd-skills",
|
|
3
|
-
"version": "0.19.
|
|
3
|
+
"version": "0.19.5",
|
|
4
4
|
"description": "AI security skills grounded in mid-2026 threat reality, not stale framework documentation. 51 skills, 11 catalogs (1025 CVEs / 232 CWEs / 794 ATT&CK + ICS / 174 ATLAS / 468 D3FEND / 8889 RFCs), 35 jurisdictions, 10-class catalog gap detector + budget gate, real XML parser + canonical-form diff + content-pattern regression detection, Ed25519-signed.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai-security",
|
package/sbom.cdx.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"bomFormat": "CycloneDX",
|
|
3
3
|
"specVersion": "1.6",
|
|
4
|
-
"serialNumber": "urn:uuid:
|
|
4
|
+
"serialNumber": "urn:uuid:61454518-f9f7-41bc-bf78-d19c77c38b4a",
|
|
5
5
|
"version": 1,
|
|
6
6
|
"metadata": {
|
|
7
7
|
"timestamp": "2026-08-08T00:00:00.000Z",
|
|
@@ -9,14 +9,14 @@
|
|
|
9
9
|
{
|
|
10
10
|
"vendor": "blamejs",
|
|
11
11
|
"name": "scripts/refresh-sbom.js",
|
|
12
|
-
"version": "0.19.
|
|
12
|
+
"version": "0.19.5"
|
|
13
13
|
}
|
|
14
14
|
],
|
|
15
15
|
"component": {
|
|
16
|
-
"bom-ref": "pkg:npm/@blamejs/exceptd-skills@0.19.
|
|
16
|
+
"bom-ref": "pkg:npm/@blamejs/exceptd-skills@0.19.5",
|
|
17
17
|
"type": "application",
|
|
18
18
|
"name": "@blamejs/exceptd-skills",
|
|
19
|
-
"version": "0.19.
|
|
19
|
+
"version": "0.19.5",
|
|
20
20
|
"description": "AI security skills grounded in mid-2026 threat reality, not stale framework documentation. 51 skills, 11 catalogs (1025 CVEs / 232 CWEs / 794 ATT&CK + ICS / 174 ATLAS / 468 D3FEND / 8889 RFCs), 35 jurisdictions, 10-class catalog gap detector + budget gate, real XML parser + canonical-form diff + content-pattern regression detection, Ed25519-signed.",
|
|
21
21
|
"licenses": [
|
|
22
22
|
{
|
|
@@ -25,17 +25,17 @@
|
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
],
|
|
28
|
-
"purl": "pkg:npm/%40blamejs/exceptd-skills@0.19.
|
|
28
|
+
"purl": "pkg:npm/%40blamejs/exceptd-skills@0.19.5",
|
|
29
29
|
"hashes": [
|
|
30
30
|
{
|
|
31
31
|
"alg": "SHA-256",
|
|
32
|
-
"content": "
|
|
32
|
+
"content": "6b388cfad4017eb60f9b8bcfee10344e63697aa390f64129f4b3d5394c1848c0"
|
|
33
33
|
}
|
|
34
34
|
],
|
|
35
35
|
"externalReferences": [
|
|
36
36
|
{
|
|
37
37
|
"type": "distribution",
|
|
38
|
-
"url": "https://www.npmjs.com/package/@blamejs/exceptd-skills/v/0.19.
|
|
38
|
+
"url": "https://www.npmjs.com/package/@blamejs/exceptd-skills/v/0.19.5"
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
41
|
"type": "vcs",
|
|
@@ -124,11 +124,11 @@
|
|
|
124
124
|
"hashes": [
|
|
125
125
|
{
|
|
126
126
|
"alg": "SHA-256",
|
|
127
|
-
"content": "
|
|
127
|
+
"content": "6b863a1ee687550eb946f79eb096cd1404dae638de0f3173e62c409801b54204"
|
|
128
128
|
},
|
|
129
129
|
{
|
|
130
130
|
"alg": "SHA3-512",
|
|
131
|
-
"content": "
|
|
131
|
+
"content": "0418360a1562811f275fb999654c260b9bf1cece61a6e82d897ff6f1c0b74ec7cdd63b121cef6cedd610a5f909784b8fb1c461eb20282fb296b2d19b52d0e668"
|
|
132
132
|
}
|
|
133
133
|
]
|
|
134
134
|
},
|
|
@@ -949,11 +949,11 @@
|
|
|
949
949
|
"hashes": [
|
|
950
950
|
{
|
|
951
951
|
"alg": "SHA-256",
|
|
952
|
-
"content": "
|
|
952
|
+
"content": "e71be5d0f356ce0d249b8b01f348553b48d80213e693955f1ea9615b56aec918"
|
|
953
953
|
},
|
|
954
954
|
{
|
|
955
955
|
"alg": "SHA3-512",
|
|
956
|
-
"content": "
|
|
956
|
+
"content": "102cb5c0ec613002b4e9610fc07276e8fc605a602ff6594d4a170f164d473d2d498f80abf3c03ff941f8d637a9baa65703f6dbc0ef5f411e234be66e5fdfb367"
|
|
957
957
|
}
|
|
958
958
|
]
|
|
959
959
|
},
|
|
@@ -1444,11 +1444,11 @@
|
|
|
1444
1444
|
"hashes": [
|
|
1445
1445
|
{
|
|
1446
1446
|
"alg": "SHA-256",
|
|
1447
|
-
"content": "
|
|
1447
|
+
"content": "a26461c4cb01e8c0863a1d87c530c88378fc31022fdfc2c0eae91abc948d3d5e"
|
|
1448
1448
|
},
|
|
1449
1449
|
{
|
|
1450
1450
|
"alg": "SHA3-512",
|
|
1451
|
-
"content": "
|
|
1451
|
+
"content": "bd1bc3d4efd586d31bf7b2828ea04ad6a9eebde8e5e8c40b98b9ddf428d3e1a00b9aaf56e01fa118e6e5ddf88b49e1f89498c6ba33879fc2e702f60111a0aa85"
|
|
1452
1452
|
}
|
|
1453
1453
|
]
|
|
1454
1454
|
},
|
|
@@ -1954,11 +1954,11 @@
|
|
|
1954
1954
|
"hashes": [
|
|
1955
1955
|
{
|
|
1956
1956
|
"alg": "SHA-256",
|
|
1957
|
-
"content": "
|
|
1957
|
+
"content": "d8a29cea517d6283eb77e3dafcf4b762bae6c4c4ceb7175ec07d61704adb8410"
|
|
1958
1958
|
},
|
|
1959
1959
|
{
|
|
1960
1960
|
"alg": "SHA3-512",
|
|
1961
|
-
"content": "
|
|
1961
|
+
"content": "6801743b26ae4ca4e45497b56382cd06333e9fb3f1aac5aa63ad721d6b2fc1de4ea442986a31204aa2daa925413fa386227919ce4a88e7300ea975b0af6c5817"
|
|
1962
1962
|
}
|
|
1963
1963
|
]
|
|
1964
1964
|
},
|
|
@@ -2074,11 +2074,11 @@
|
|
|
2074
2074
|
"hashes": [
|
|
2075
2075
|
{
|
|
2076
2076
|
"alg": "SHA-256",
|
|
2077
|
-
"content": "
|
|
2077
|
+
"content": "764f320198bb93c4522940f64c0ebff4f1e676d0b18da7b5e5c584daa90ba83a"
|
|
2078
2078
|
},
|
|
2079
2079
|
{
|
|
2080
2080
|
"alg": "SHA3-512",
|
|
2081
|
-
"content": "
|
|
2081
|
+
"content": "82df86ac7da06a6ae5b562a7adbc6afc0515f113e9bb15e6fb6b57393a1a68f75e965afa3ab7012cd7b41b8e120dc2766e02b9476c20526a0bf3a7aea142dd8c"
|
|
2082
2082
|
}
|
|
2083
2083
|
]
|
|
2084
2084
|
},
|