@blamejs/exceptd-skills 0.12.40 → 0.13.0

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.
Files changed (97) hide show
  1. package/AGENTS.md +17 -0
  2. package/ARCHITECTURE.md +7 -4
  3. package/CHANGELOG.md +215 -248
  4. package/CONTEXT.md +2 -2
  5. package/README.md +2 -8
  6. package/agents/threat-researcher.md +2 -2
  7. package/bin/exceptd.js +179 -81
  8. package/data/_indexes/_meta.json +50 -50
  9. package/data/_indexes/activity-feed.json +1 -1
  10. package/data/_indexes/catalog-summaries.json +1 -1
  11. package/data/_indexes/chains.json +485 -13
  12. package/data/_indexes/frequency.json +4 -0
  13. package/data/_indexes/jurisdiction-map.json +15 -4
  14. package/data/_indexes/section-offsets.json +1224 -1224
  15. package/data/_indexes/token-budget.json +170 -170
  16. package/data/atlas-ttps.json +54 -11
  17. package/data/attack-techniques.json +113 -17
  18. package/data/cve-catalog.json +38 -52
  19. package/data/cwe-catalog.json +8 -2
  20. package/data/exploit-availability.json +1 -0
  21. package/data/framework-control-gaps.json +149 -6
  22. package/data/global-frameworks.json +1 -0
  23. package/data/playbooks/ai-api.json +5 -0
  24. package/data/playbooks/cicd-pipeline-compromise.json +970 -0
  25. package/data/playbooks/cloud-iam-incident.json +4 -1
  26. package/data/playbooks/cred-stores.json +10 -0
  27. package/data/playbooks/crypto-codebase.json +13 -0
  28. package/data/playbooks/framework.json +16 -0
  29. package/data/playbooks/hardening.json +4 -0
  30. package/data/playbooks/identity-sso-compromise.json +951 -0
  31. package/data/playbooks/idp-incident.json +3 -0
  32. package/data/playbooks/kernel.json +6 -0
  33. package/data/playbooks/llm-tool-use-exfil.json +963 -0
  34. package/data/playbooks/mcp.json +6 -0
  35. package/data/playbooks/runtime.json +4 -0
  36. package/data/playbooks/sbom.json +13 -0
  37. package/data/playbooks/secrets.json +6 -0
  38. package/data/playbooks/webhook-callback-abuse.json +916 -0
  39. package/data/zeroday-lessons.json +1 -0
  40. package/lib/cross-ref-api.js +33 -13
  41. package/lib/cve-curation.js +12 -1
  42. package/lib/exit-codes.js +29 -0
  43. package/lib/lint-skills.js +25 -3
  44. package/lib/playbook-runner.js +8 -4
  45. package/lib/refresh-external.js +10 -1
  46. package/lib/scoring.js +64 -1
  47. package/lib/sign.js +40 -7
  48. package/lib/verify.js +5 -5
  49. package/manifest.json +83 -83
  50. package/orchestrator/README.md +7 -7
  51. package/orchestrator/index.js +46 -25
  52. package/orchestrator/scheduler.js +2 -2
  53. package/package.json +1 -1
  54. package/sbom.cdx.json +135 -91
  55. package/scripts/check-test-coverage.js +6 -6
  56. package/scripts/predeploy.js +7 -13
  57. package/scripts/refresh-reverse-refs.js +107 -20
  58. package/scripts/refresh-sbom.js +21 -4
  59. package/skills/age-gates-child-safety/skill.md +1 -5
  60. package/skills/ai-attack-surface/skill.md +11 -4
  61. package/skills/ai-c2-detection/skill.md +11 -2
  62. package/skills/ai-risk-management/skill.md +4 -2
  63. package/skills/api-security/skill.md +7 -8
  64. package/skills/attack-surface-pentest/skill.md +2 -2
  65. package/skills/cloud-iam-incident/skill.md +1 -5
  66. package/skills/cloud-security/skill.md +0 -4
  67. package/skills/compliance-theater/skill.md +10 -2
  68. package/skills/container-runtime-security/skill.md +1 -3
  69. package/skills/dlp-gap-analysis/skill.md +3 -4
  70. package/skills/email-security-anti-phishing/skill.md +1 -8
  71. package/skills/exploit-scoring/skill.md +7 -2
  72. package/skills/framework-gap-analysis/skill.md +1 -1
  73. package/skills/fuzz-testing-strategy/skill.md +1 -2
  74. package/skills/global-grc/skill.md +3 -2
  75. package/skills/identity-assurance/skill.md +1 -3
  76. package/skills/idp-incident-response/skill.md +1 -4
  77. package/skills/incident-response-playbook/skill.md +1 -5
  78. package/skills/kernel-lpe-triage/skill.md +2 -2
  79. package/skills/mcp-agent-trust/skill.md +13 -3
  80. package/skills/mlops-security/skill.md +3 -4
  81. package/skills/ot-ics-security/skill.md +0 -3
  82. package/skills/policy-exception-gen/skill.md +11 -3
  83. package/skills/pqc-first/skill.md +4 -2
  84. package/skills/rag-pipeline-security/skill.md +2 -0
  85. package/skills/ransomware-response/skill.md +1 -5
  86. package/skills/researcher/skill.md +4 -3
  87. package/skills/sector-energy/skill.md +0 -4
  88. package/skills/sector-federal-government/skill.md +2 -3
  89. package/skills/sector-financial/skill.md +1 -4
  90. package/skills/sector-healthcare/skill.md +0 -5
  91. package/skills/sector-telecom/skill.md +0 -4
  92. package/skills/security-maturity-tiers/skill.md +1 -2
  93. package/skills/skill-update-loop/skill.md +4 -3
  94. package/skills/supply-chain-integrity/skill.md +4 -3
  95. package/skills/threat-model-currency/skill.md +1 -1
  96. package/skills/threat-modeling-methodology/skill.md +2 -1
  97. package/skills/webapp-security/skill.md +0 -5
@@ -36,6 +36,16 @@
36
36
  },
37
37
  "vendor_advisory_field_added": "2026-05-11",
38
38
  "vendor_advisory_note": "Each CVE carries a structured vendor_advisories array (vendor, advisory_id, url, severity, published_date) for downstream consumers that route by vendor advisory. Unknown advisory IDs are null with the canonical vendor CVE-resolver URL — never fabricated. Existing free-form references are preserved in verification_sources; vendor_advisories is additive.",
39
+ "active_exploitation_vocabulary": {
40
+ "values": ["confirmed", "suspected", "theoretical", "none", "unknown"],
41
+ "definitions": {
42
+ "confirmed": "Active in-the-wild exploitation observed and attributed",
43
+ "suspected": "Indicators consistent with exploitation; attribution incomplete",
44
+ "theoretical": "Working PoC published; no confirmed exploitation",
45
+ "none": "No exploitation observed; vulnerability disclosed and patched",
46
+ "unknown": "Insufficient telemetry to classify"
47
+ }
48
+ },
39
49
  "ai_discovery_methodology": {
40
50
  "field_added": "2026-05-15",
41
51
  "agents_md_target": "Hard Rule #7 — '41% of 2025 zero-days were AI-discovered'. Catalog target rate floor: 0.40.",
@@ -1318,7 +1328,7 @@
1318
1328
  "NIST-800-53-SI-2": "30-day critical patch SLA is an exploitation window for a deterministic LPE with a public PoC. Module-unload mitigation is non-reboot and available immediately, but no SI-2 implementation requires it as a compensating control.",
1319
1329
  "ISO-27001-2022-A.8.8": "'Appropriate timescales' undefined; standard 30-day interpretation is unsafe for deterministic LPE with public PoC. No requirement to track kernel-module-blacklist as a compensating control.",
1320
1330
  "NIS2-Art21-patch-management": "Art. 21(2)(c) patch-management measures are undefined for fast-cycle kernel LPEs with public PoC. No guidance on module-blacklist as an interim measure.",
1321
- "DORA-Art9": "ICT incident management presumes vendor-patch cadence; module-unload as immediate mitigation has no place in the typical DORA evidence pack.",
1331
+ "DORA-Art-9": "ICT incident management presumes vendor-patch cadence; module-unload as immediate mitigation has no place in the typical DORA evidence pack.",
1322
1332
  "UK-CAF-B4": "System security principle is silent on subsystem module disable as a compensating control for unpatched kernel LPE.",
1323
1333
  "AU-ISM-1546": "Essential 8 patch-applications maturity ladder anchors on advisory date, not on PoC availability. ML3 48h is still long for a deterministic public exploit.",
1324
1334
  "ISO-27001-2022-A.5.7": "Threat-intelligence control collects feeds but does not require the operational pivot (module unload) when intel shows a same-family sequel to a previously-patched bug."
@@ -1450,8 +1460,6 @@
1450
1460
  "rwep_correction_note": "RWEP bump:v0.12.29 ai-discovery audit re-attributed to ai_discovered=true; ai_factor advanced from 0 to 15; rwep raised by 15 from 20 to 35."
1451
1461
  },
1452
1462
  "CVE-2024-21626": {
1453
- "_draft": true,
1454
- "_auto_imported": true,
1455
1463
  "ai_assisted_weaponization": false,
1456
1464
  "name": "runc /proc/self/fd leak (Leaky Vessels)",
1457
1465
  "type": "container-escape",
@@ -1500,9 +1508,7 @@
1500
1508
  },
1501
1509
  "epss_score": 0.65,
1502
1510
  "epss_date": "2026-05-14",
1503
- "cwe_refs": [
1504
- "CWE-403"
1505
- ],
1511
+ "cwe_refs": [],
1506
1512
  "source_verified": "2026-05-14",
1507
1513
  "verification_sources": [
1508
1514
  "https://nvd.nist.gov/vuln/detail/CVE-2024-21626",
@@ -1514,8 +1520,6 @@
1514
1520
  "rwep_correction_note": "v0.12.30: canonicalized rwep_factors AND rwep_score to satisfy Shape B invariant. The prior stored rwep_score was internally inconsistent with its rwep_factors block; both now derived from canonical RWEP_WEIGHTS + operational fields. Delta from prior stored: +5 (75 -> 80)."
1515
1521
  },
1516
1522
  "CVE-2024-3094": {
1517
- "_draft": true,
1518
- "_auto_imported": true,
1519
1523
  "ai_assisted_weaponization": false,
1520
1524
  "name": "xz-utils liblzma backdoor",
1521
1525
  "type": "supply-chain-backdoor",
@@ -1587,7 +1591,7 @@
1587
1591
  },
1588
1592
  "CVE-2024-3154": {
1589
1593
  "_draft": true,
1590
- "_auto_imported": true,
1594
+ "_draft_reason": "Hard Rule #1 fields all present and verified against NVD + Red Hat Bugzilla; CWE-20 and ATT&CK T1611 refs resolve. Blocked from verification by missing matching entry in data/zeroday-lessons.json (rule #6: zero-day learning is live). Add the lesson entry, then flip _draft to false.",
1591
1595
  "ai_assisted_weaponization": false,
1592
1596
  "name": "CRI-O arbitrary kernel-module load",
1593
1597
  "type": "container-escape",
@@ -1626,8 +1630,7 @@
1626
1630
  },
1627
1631
  "atlas_refs": [],
1628
1632
  "attack_refs": [
1629
- "T1611",
1630
- "T1547.006"
1633
+ "T1611"
1631
1634
  ],
1632
1635
  "rwep_score": 30,
1633
1636
  "rwep_factors": {
@@ -1655,7 +1658,7 @@
1655
1658
  },
1656
1659
  "CVE-2023-43472": {
1657
1660
  "_draft": true,
1658
- "_auto_imported": true,
1661
+ "_draft_reason": "Hard Rule #1 fields all present and verified against NVD + Protect AI Huntr advisory; ATLAS AML.T0016 and CWE-22 refs resolve. Blocked from verification by missing matching entry in data/zeroday-lessons.json (rule #6: zero-day learning is live). Add the lesson entry, then flip _draft to false.",
1659
1662
  "ai_assisted_weaponization": false,
1660
1663
  "name": "MLflow path-traversal arbitrary file read",
1661
1664
  "type": "path-traversal",
@@ -1689,10 +1692,7 @@
1689
1692
  "atlas_refs": [
1690
1693
  "AML.T0016"
1691
1694
  ],
1692
- "attack_refs": [
1693
- "T1083",
1694
- "T1005"
1695
- ],
1695
+ "attack_refs": [],
1696
1696
  "rwep_score": 30,
1697
1697
  "rwep_factors": {
1698
1698
  "cisa_kev": 0,
@@ -1719,7 +1719,7 @@
1719
1719
  },
1720
1720
  "CVE-2020-10148": {
1721
1721
  "_draft": true,
1722
- "_auto_imported": true,
1722
+ "_draft_reason": "Hard Rule #1 fields all present and verified against NVD + CISA AA20-352A; CWE-287 and ATT&CK T1190/T1078 refs resolve. Blocked from verification by missing matching entry in data/zeroday-lessons.json (rule #6: zero-day learning is live). Add the lesson entry, then flip _draft to false.",
1723
1723
  "ai_assisted_weaponization": false,
1724
1724
  "name": "SolarWinds Orion API authentication bypass (SUNBURST chain)",
1725
1725
  "type": "auth-bypass",
@@ -1782,7 +1782,7 @@
1782
1782
  },
1783
1783
  "CVE-2023-3519": {
1784
1784
  "_draft": true,
1785
- "_auto_imported": true,
1785
+ "_draft_reason": "Hard Rule #1 fields all present and verified against NVD + Citrix CTX561482 + CISA AA23-201A; CWE-787 and ATT&CK T1190 refs resolve. Blocked from verification by missing matching entry in data/zeroday-lessons.json (rule #6: zero-day learning is live). Add the lesson entry, then flip _draft to false.",
1786
1786
  "ai_assisted_weaponization": false,
1787
1787
  "name": "Citrix NetScaler ADC/Gateway unauth RCE (CitrixBleed precursor)",
1788
1788
  "type": "RCE",
@@ -1834,7 +1834,6 @@
1834
1834
  "epss_score": 0.967,
1835
1835
  "epss_date": "2026-05-14",
1836
1836
  "cwe_refs": [
1837
- "CWE-119",
1838
1837
  "CWE-787"
1839
1838
  ],
1840
1839
  "source_verified": "2026-05-14",
@@ -1848,7 +1847,7 @@
1848
1847
  },
1849
1848
  "CVE-2024-1709": {
1850
1849
  "_draft": true,
1851
- "_auto_imported": true,
1850
+ "_draft_reason": "Hard Rule #1 fields all present and verified against NVD + ConnectWise advisory; ATT&CK T1190/T1078 refs resolve (cwe_refs empty but ATT&CK satisfies the resolve-at-least-one requirement). Blocked from verification by missing matching entry in data/zeroday-lessons.json (rule #6: zero-day learning is live). Add the lesson entry, then flip _draft to false.",
1852
1851
  "ai_assisted_weaponization": false,
1853
1852
  "name": "ConnectWise ScreenConnect auth-bypass",
1854
1853
  "type": "auth-bypass",
@@ -1896,9 +1895,7 @@
1896
1895
  },
1897
1896
  "epss_score": 0.973,
1898
1897
  "epss_date": "2026-05-14",
1899
- "cwe_refs": [
1900
- "CWE-288"
1901
- ],
1898
+ "cwe_refs": [],
1902
1899
  "source_verified": "2026-05-14",
1903
1900
  "verification_sources": [
1904
1901
  "https://nvd.nist.gov/vuln/detail/CVE-2024-1709",
@@ -1909,7 +1906,7 @@
1909
1906
  },
1910
1907
  "CVE-2026-20182": {
1911
1908
  "_draft": true,
1912
- "_auto_imported": true,
1909
+ "_draft_reason": "Hard Rule #1 fields all present and verified against CISA KEV + Rapid7 disclosure; CWE-287 and ATT&CK T1190/T1078 refs resolve. Blocked from verification by missing matching entry in data/zeroday-lessons.json (rule #6: zero-day learning is live). Add the lesson entry, then flip _draft to false.",
1913
1910
  "ai_assisted_weaponization": false,
1914
1911
  "name": "Cisco SD-WAN authentication bypass to admin",
1915
1912
  "type": "auth-bypass",
@@ -1973,7 +1970,7 @@
1973
1970
  },
1974
1971
  "CVE-2024-40635": {
1975
1972
  "_draft": true,
1976
- "_auto_imported": true,
1973
+ "_draft_reason": "Hard Rule #1 fields all present and verified against NVD + Snyk SNYK-GOLANG-GITHUBCOMCONTAINERDCONTAINERDV2PKGOCI-9479987; ATT&CK T1525 ref resolves (cwe_refs empty but ATT&CK satisfies). Blocked from verification by missing matching entry in data/zeroday-lessons.json (rule #6: zero-day learning is live). Add the lesson entry, then flip _draft to false.",
1977
1974
  "ai_assisted_weaponization": false,
1978
1975
  "name": "containerd integer overflow IP mask leak",
1979
1976
  "type": "information-disclosure",
@@ -2006,8 +2003,7 @@
2006
2003
  },
2007
2004
  "atlas_refs": [],
2008
2005
  "attack_refs": [
2009
- "T1525",
2010
- "T1046"
2006
+ "T1525"
2011
2007
  ],
2012
2008
  "rwep_score": 30,
2013
2009
  "rwep_factors": {
@@ -2022,9 +2018,7 @@
2022
2018
  },
2023
2019
  "epss_score": 0.005,
2024
2020
  "epss_date": "2026-05-14",
2025
- "cwe_refs": [
2026
- "CWE-190"
2027
- ],
2021
+ "cwe_refs": [],
2028
2022
  "source_verified": "2026-05-14",
2029
2023
  "verification_sources": [
2030
2024
  "https://nvd.nist.gov/vuln/detail/CVE-2024-40635",
@@ -2035,8 +2029,6 @@
2035
2029
  "rwep_correction_note": "v0.12.30: canonicalized rwep_factors AND rwep_score to satisfy Shape B invariant. The prior stored rwep_score was internally inconsistent with its rwep_factors block; both now derived from canonical RWEP_WEIGHTS + operational fields. Delta from prior stored: 0."
2036
2030
  },
2037
2031
  "MAL-2026-TANSTACK-MINI": {
2038
- "_draft": true,
2039
- "_auto_imported": true,
2040
2032
  "ai_assisted_weaponization": false,
2041
2033
  "name": "Mini Shai-Hulud (TanStack worm)",
2042
2034
  "type": "supply-chain-worm",
@@ -2073,8 +2065,7 @@
2073
2065
  "NIS2-Art21-supply-chain": "Generic supply chain controls without npm-ecosystem-specific guidance."
2074
2066
  },
2075
2067
  "atlas_refs": [
2076
- "AML.T0010",
2077
- "AML.T0019"
2068
+ "AML.T0010"
2078
2069
  ],
2079
2070
  "attack_refs": [
2080
2071
  "T1195.001",
@@ -2109,7 +2100,8 @@
2109
2100
  },
2110
2101
  "MAL-2026-ANTHROPIC-MCP-STDIO": {
2111
2102
  "_draft": true,
2112
- "_auto_imported": true,
2103
+ "_quarantine": true,
2104
+ "_quarantine_reason": "Duplicate of CVE-2026-30623 (Anthropic MCP SDK stdio command-injection). This entry was the pre-CVE-assignment embargoed placeholder for the OX Security MCP stdio command-injection disclosure (Moshe Siman Tov Bustan, Mustafa Naamnih, Nir Zadok); the embargo lifted with the April 2026 vendor advisory and the issue received CVE-2026-30623. Canonical id: CVE-2026-30623. Retained as _draft: true so the validator treats it as a non-failing draft warning; downstream tooling should filter on _quarantine: true and skip these entries.",
2113
2105
  "ai_assisted_weaponization": false,
2114
2106
  "name": "Anthropic SDK MCP STDIO command-injection (embargoed)",
2115
2107
  "type": "command-injection",
@@ -2178,7 +2170,7 @@
2178
2170
  },
2179
2171
  "CVE-2026-GTIG-AI-2FA": {
2180
2172
  "_draft": true,
2181
- "_auto_imported": true,
2173
+ "_draft_reason": "Placeholder entry — affected product is unnamed under GTIG embargo and affected_versions is set to \"pending-disclosure\". The key itself is not a real CVE identifier (GTIG-tracked, no MITRE assignment yet). Hard Rule #1 fields cannot be verified against a vendor advisory until the embargo lifts and a real CVE id is assigned. Re-triage once GTIG/MITRE publishes the canonical id and affected-product list.",
2182
2174
  "name": "GTIG-tracked AI-built 2FA-bypass zero-day (placeholder)",
2183
2175
  "type": "auth-bypass",
2184
2176
  "cvss_score": 8.1,
@@ -2238,8 +2230,7 @@
2238
2230
  "epss_score": null,
2239
2231
  "epss_date": "2026-05-14",
2240
2232
  "cwe_refs": [
2241
- "CWE-287",
2242
- "CWE-841"
2233
+ "CWE-287"
2243
2234
  ],
2244
2235
  "source_verified": "2026-05-14",
2245
2236
  "verification_sources": [
@@ -2252,7 +2243,7 @@
2252
2243
  },
2253
2244
  "CVE-2026-30623": {
2254
2245
  "_draft": true,
2255
- "_auto_imported": true,
2246
+ "_draft_reason": "Hard Rule #1 fields all present and verified against NVD + OX Security advisory (Moshe Siman Tov Bustan, Mustafa Naamnih, Nir Zadok); CWE-78/88, ATLAS AML.T0040 and ATT&CK T1059 refs resolve. This entry is the published successor of the quarantined MAL-2026-ANTHROPIC-MCP-STDIO placeholder. Blocked from verification by missing matching entry in data/zeroday-lessons.json (rule #6: zero-day learning is live). Add the lesson entry, then flip _draft to false.",
2256
2247
  "ai_assisted_weaponization": false,
2257
2248
  "name": "Anthropic MCP SDK stdio command-injection",
2258
2249
  "type": "command-injection",
@@ -2319,7 +2310,7 @@
2319
2310
  },
2320
2311
  "CVE-2025-12686": {
2321
2312
  "_draft": true,
2322
- "_auto_imported": true,
2313
+ "_draft_reason": "Hard Rule #1 fields all present and verified against NVD + Synacktiv Pwn2Own writeup; CWE-78 and ATT&CK T1190 refs resolve. Blocked from verification by missing matching entry in data/zeroday-lessons.json (rule #6: zero-day learning is live). Add the lesson entry, then flip _draft to false.",
2323
2314
  "ai_assisted_weaponization": false,
2324
2315
  "name": "Synology BeeStation unauth RCE (Pwn2Own Ireland 2025)",
2325
2316
  "type": "RCE",
@@ -2379,7 +2370,7 @@
2379
2370
  },
2380
2371
  "CVE-2025-62847": {
2381
2372
  "_draft": true,
2382
- "_auto_imported": true,
2373
+ "_draft_reason": "Hard Rule #1 fields all present and verified against NVD + ZDI Pwn2Own Ireland 2025 day-one results + DEVCORE Research Team attribution; CWE-78 and ATT&CK T1190 refs resolve. Blocked from verification by missing matching entry in data/zeroday-lessons.json (rule #6: zero-day learning is live). Add the lesson entry, then flip _draft to false.",
2383
2374
  "ai_assisted_weaponization": false,
2384
2375
  "name": "QNAP QTS/QuTS hero RCE (Pwn2Own Ireland 2025, chain 1/3)",
2385
2376
  "type": "RCE",
@@ -2441,7 +2432,7 @@
2441
2432
  },
2442
2433
  "CVE-2025-62848": {
2443
2434
  "_draft": true,
2444
- "_auto_imported": true,
2435
+ "_draft_reason": "Hard Rule #1 fields all present and verified against NVD + ZDI Pwn2Own Ireland 2025 day-one results + DEVCORE Research Team attribution; CWE-94 and ATT&CK T1190 refs resolve. Blocked from verification by missing matching entry in data/zeroday-lessons.json (rule #6: zero-day learning is live). Add the lesson entry, then flip _draft to false.",
2445
2436
  "ai_assisted_weaponization": false,
2446
2437
  "name": "QNAP QTS/QuTS hero RCE (Pwn2Own Ireland 2025, chain 2/3)",
2447
2438
  "type": "RCE",
@@ -2503,7 +2494,7 @@
2503
2494
  },
2504
2495
  "CVE-2025-62849": {
2505
2496
  "_draft": true,
2506
- "_auto_imported": true,
2497
+ "_draft_reason": "Hard Rule #1 fields all present and verified against NVD + ZDI Pwn2Own Ireland 2025 day-one results + DEVCORE Research Team attribution; CWE-269 and ATT&CK T1068 refs resolve. Blocked from verification by missing matching entry in data/zeroday-lessons.json (rule #6: zero-day learning is live). Add the lesson entry, then flip _draft to false.",
2507
2498
  "ai_assisted_weaponization": false,
2508
2499
  "name": "QNAP QTS/QuTS hero RCE (Pwn2Own Ireland 2025, chain 3/3)",
2509
2500
  "type": "RCE",
@@ -2565,7 +2556,7 @@
2565
2556
  },
2566
2557
  "CVE-2025-59389": {
2567
2558
  "_draft": true,
2568
- "_auto_imported": true,
2559
+ "_draft_reason": "Hard Rule #1 fields all present and verified against NVD + QNAP QSA-25-48 + ZDI Pwn2Own attribution (Sina Kheirkhah, Summoning Team); CWE-78 and ATT&CK T1190 refs resolve. Blocked from verification by missing matching entry in data/zeroday-lessons.json (rule #6: zero-day learning is live). Add the lesson entry, then flip _draft to false.",
2569
2560
  "ai_assisted_weaponization": false,
2570
2561
  "name": "QNAP Hyper Data Protector critical RCE (Pwn2Own Ireland 2025)",
2571
2562
  "type": "RCE",
@@ -2597,8 +2588,7 @@
2597
2588
  },
2598
2589
  "atlas_refs": [],
2599
2590
  "attack_refs": [
2600
- "T1190",
2601
- "T1490"
2591
+ "T1190"
2602
2592
  ],
2603
2593
  "rwep_score": 45,
2604
2594
  "rwep_factors": {
@@ -2627,7 +2617,7 @@
2627
2617
  },
2628
2618
  "CVE-2025-11837": {
2629
2619
  "_draft": true,
2630
- "_auto_imported": true,
2620
+ "_draft_reason": "Hard Rule #1 fields all present and verified against NVD + QNAP QSA-25-47 + Pwn2Own attribution (Chumy Tsai, CyCraft Technology); CWE-94 and ATT&CK T1059/T1554 refs resolve. Blocked from verification by missing matching entry in data/zeroday-lessons.json (rule #6: zero-day learning is live). Add the lesson entry, then flip _draft to false.",
2631
2621
  "ai_assisted_weaponization": false,
2632
2622
  "name": "QNAP Malware Remover code-injection",
2633
2623
  "type": "code-injection",
@@ -2688,8 +2678,6 @@
2688
2678
  "discovery_attribution_note": "Pwn2Own Ireland 2025 — Chumy Tsai of CyCraft Technology demonstrated the code-injection on QNAP TS-453E ($20,000 award). Named-human researcher via ZDI credit; no AI-tool attribution. Source: https://www.qnap.com/en/security-advisory/qsa-25-47 and https://cybersecuritynews.com/qnap-zero-day-vulnerabilities-exploited/."
2689
2679
  },
2690
2680
  "CVE-2026-42945": {
2691
- "_draft": true,
2692
- "_auto_imported": true,
2693
2681
  "name": "NGINX Rift",
2694
2682
  "type": "RCE",
2695
2683
  "cvss_score": 9.2,
@@ -2737,8 +2725,7 @@
2737
2725
  "AML.T0040"
2738
2726
  ],
2739
2727
  "attack_refs": [
2740
- "T1190",
2741
- "T1505.003"
2728
+ "T1190"
2742
2729
  ],
2743
2730
  "rwep_score": 40,
2744
2731
  "rwep_factors": {
@@ -2755,7 +2742,6 @@
2755
2742
  "epss_score": null,
2756
2743
  "epss_date": "2026-05-14",
2757
2744
  "cwe_refs": [
2758
- "CWE-122",
2759
2745
  "CWE-787"
2760
2746
  ],
2761
2747
  "source_verified": "2026-05-14",
@@ -1127,8 +1127,10 @@
1127
1127
  ],
1128
1128
  "skills_referencing": [],
1129
1129
  "evidence_cves": [
1130
+ "CVE-2024-3094",
1130
1131
  "MAL-2026-3083",
1131
- "MAL-2026-NODE-IPC-STEALER"
1132
+ "MAL-2026-NODE-IPC-STEALER",
1133
+ "MAL-2026-TANSTACK-MINI"
1132
1134
  ],
1133
1135
  "framework_controls_partially_addressing": [
1134
1136
  "NIST-800-53-SA-12",
@@ -1349,6 +1351,7 @@
1349
1351
  ],
1350
1352
  "evidence_cves": [
1351
1353
  "CVE-2026-0300",
1354
+ "CVE-2026-42945",
1352
1355
  "CVE-2026-43500",
1353
1356
  "CVE-2026-46300"
1354
1357
  ],
@@ -1656,6 +1659,7 @@
1656
1659
  "supply-chain-integrity"
1657
1660
  ],
1658
1661
  "evidence_cves": [
1662
+ "CVE-2024-3094",
1659
1663
  "MAL-2026-NODE-IPC-STEALER"
1660
1664
  ],
1661
1665
  "framework_controls_partially_addressing": [
@@ -1688,7 +1692,9 @@
1688
1692
  "sector-federal-government",
1689
1693
  "supply-chain-integrity"
1690
1694
  ],
1691
- "evidence_cves": [],
1695
+ "evidence_cves": [
1696
+ "MAL-2026-TANSTACK-MINI"
1697
+ ],
1692
1698
  "framework_controls_partially_addressing": [
1693
1699
  "NIST-800-53-SA-12",
1694
1700
  "NIST-800-53-SI-2",
@@ -2,6 +2,7 @@
2
2
  "_meta": {
3
3
  "schema_version": "1.1.0",
4
4
  "last_updated": "2026-05-15",
5
+ "last_threat_review": "2026-05-17",
5
6
  "note": "Tracks PoC availability and weaponization stage per CVE. Update when status changes. last_verified must be within 90 days. v1.1.0 (2026-05-15): added ai_discovery_source enum + ai_assist_factor ladder (low|moderate|high|very_high) per AGENTS.md Hard Rule #7.",
6
7
  "tlp": "CLEAR",
7
8
  "source_confidence": {
@@ -132,8 +132,7 @@
132
132
  "AML.T0051"
133
133
  ],
134
134
  "attack_refs": [
135
- "T1059",
136
- "T1204"
135
+ "T1059"
137
136
  ],
138
137
  "theater_test": {
139
138
  "claim": "We hardened user applications per Essential Eight Maturity Level 2; browsers and Office are locked down.",
@@ -725,10 +724,13 @@
725
724
  "status": "open",
726
725
  "opened_date": "2026-05-13",
727
726
  "evidence_cves": [
727
+ "CVE-2024-3094",
728
728
  "CVE-2026-42897",
729
+ "CVE-2026-42945",
729
730
  "CVE-2026-45321",
730
731
  "MAL-2026-3083",
731
- "MAL-2026-NODE-IPC-STEALER"
732
+ "MAL-2026-NODE-IPC-STEALER",
733
+ "MAL-2026-TANSTACK-MINI"
732
734
  ],
733
735
  "atlas_refs": [
734
736
  "AML.T0010",
@@ -1100,6 +1102,7 @@
1100
1102
  "status": "open",
1101
1103
  "opened_date": "2026-04-01",
1102
1104
  "evidence_cves": [
1105
+ "CVE-2024-3094",
1103
1106
  "CVE-2026-30615"
1104
1107
  ],
1105
1108
  "atlas_refs": [
@@ -1136,6 +1139,7 @@
1136
1139
  "evidence_cves": [
1137
1140
  "CVE-2026-0300",
1138
1141
  "CVE-2026-31431",
1142
+ "CVE-2026-42945",
1139
1143
  "CVE-2026-46300"
1140
1144
  ],
1141
1145
  "atlas_refs": [],
@@ -1700,6 +1704,7 @@
1700
1704
  "CVE-2026-32202",
1701
1705
  "CVE-2026-33825",
1702
1706
  "CVE-2026-42897",
1707
+ "CVE-2026-42945",
1703
1708
  "CVE-2026-43284",
1704
1709
  "CVE-2026-43500",
1705
1710
  "CVE-2026-46300",
@@ -2184,7 +2189,10 @@
2184
2189
  "opened_date": "2026-05-15",
2185
2190
  "evidence_cves": [],
2186
2191
  "atlas_refs": [],
2187
- "attack_refs": [],
2192
+ "attack_refs": [
2193
+ "T1573",
2194
+ "T1600"
2195
+ ],
2188
2196
  "theater_test": {
2189
2197
  "claim": "Our cryptographic suite review meets PCI DSS 4.0.1 12.3.3 annual cadence.",
2190
2198
  "test": "Pull the cryptographic suite inventory and most-recent annual review. Confirm enumeration of in-use algorithms with deprecation status. Confirm a PQC-readiness assessment exists with migration roadmap for long-lived keys (TLS for >5y data, signing for code/SBOM). Theater verdict if PQC is absent from the review, or if deprecated algorithms remain in use without a documented exception.",
@@ -2314,6 +2322,7 @@
2314
2322
  "status": "open",
2315
2323
  "opened_date": "2026-05-11",
2316
2324
  "evidence_cves": [
2325
+ "CVE-2024-3094",
2317
2326
  "CVE-2026-45321",
2318
2327
  "MAL-2026-3083",
2319
2328
  "MAL-2026-NODE-IPC-STEALER"
@@ -3651,7 +3660,8 @@
3651
3660
  "status": "open",
3652
3661
  "opened_date": "2026-05-15",
3653
3662
  "evidence_cves": [
3654
- "CVE-2026-0300"
3663
+ "CVE-2026-0300",
3664
+ "CVE-2026-42945"
3655
3665
  ],
3656
3666
  "atlas_refs": [],
3657
3667
  "attack_refs": [
@@ -3686,7 +3696,9 @@
3686
3696
  "opened_date": "2026-05-15",
3687
3697
  "evidence_cves": [
3688
3698
  "CVE-2026-0300",
3689
- "CVE-2026-42897"
3699
+ "CVE-2026-42897",
3700
+ "CVE-2026-42945",
3701
+ "CVE-2026-46300"
3690
3702
  ],
3691
3703
  "atlas_refs": [],
3692
3704
  "attack_refs": [
@@ -3945,5 +3957,136 @@
3945
3957
  ],
3946
3958
  "verdict_when_failed": "compliance-theater"
3947
3959
  }
3960
+ },
3961
+ "UK-CAF-B4": {
3962
+ "framework": "UK NCSC Cyber Assessment Framework (CAF)",
3963
+ "control_id": "B4",
3964
+ "control_name": "System security",
3965
+ "designed_for": "Principle B4 — networks and information systems supporting essential functions are protected against attack. Covers secure configuration, secure architecture, and the management of vulnerabilities in deployed systems.",
3966
+ "misses": [
3967
+ "Subsystem-level kernel-module disable as a compensating control for an unpatched deterministic local-privilege-escalation is not enumerated as an interim posture distinct from vendor-patch application",
3968
+ "CAF assumes patch-application timelines tied to advisory dates; deterministic LPEs with public PoC require operational pivots (module unload, syscall filter) that the principle does not name",
3969
+ "Where vendor patch + reboot cycle is multi-day on operationally-sensitive hosts, the absence of a named compensating-control path forces operators to either accept the exposure window or schedule disruptive reboots without policy cover"
3970
+ ],
3971
+ "real_requirement": "B4 implementation must explicitly enumerate compensating-control postures for unpatched deterministic LPEs: kernel-module blacklist (esp4 / esp6 / rxrpc class), syscall filter (seccomp profile narrowing), or live-patch where vendor offers it. Each compensating control must be reversible, monitored, and have a documented conversion-SLA to the vendor binary patch.",
3972
+ "status": "open",
3973
+ "opened_date": "2026-05-17",
3974
+ "evidence_cves": [
3975
+ "CVE-2026-46300"
3976
+ ],
3977
+ "atlas_refs": [],
3978
+ "attack_refs": [
3979
+ "T1068"
3980
+ ],
3981
+ "theater_test": {
3982
+ "claim": "Our UK CAF B4 system-security posture covers unpatched kernel LPEs with documented compensating controls.",
3983
+ "test": "Pull the operator's B4 evidence pack. For the most recent deterministic kernel LPE with public PoC (CVE-2026-46300 / Fragnesia is the reference case), confirm whether the evidence pack names a compensating-control posture (module unload, syscall filter, or live-patch) distinct from the binary-patch path, and whether that posture is monitored and has a conversion-SLA back to the binary patch. Theater verdict if the evidence pack reduces to 'patch within 30 days' without a named interim compensating control, or if the compensating control is deployed without monitoring and SLA.",
3984
+ "evidence_required": [
3985
+ "B4 evidence pack covering the most recent deterministic kernel LPE",
3986
+ "named compensating-control posture (module blacklist, seccomp, live-patch) with monitoring",
3987
+ "conversion-SLA documenting return-to-binary-patch timeline"
3988
+ ],
3989
+ "verdict_when_failed": "compliance-theater"
3990
+ }
3991
+ },
3992
+ "AU-ISM-1546": {
3993
+ "framework": "Australian Government Information Security Manual (ISM)",
3994
+ "control_id": "ISM-1546",
3995
+ "control_name": "Patch operating systems and applications",
3996
+ "designed_for": "Patching operating systems and applications within timeframes set by the Essential Eight Maturity Model — ML1: 1 month for non-critical, 2 weeks for internet-facing; ML2: 2 weeks for non-critical, 48 hours for internet-facing or exploited; ML3: 48 hours for non-critical, 48 hours for internet-facing or exploited.",
3997
+ "misses": [
3998
+ "Patch-application timeframes anchor on advisory date, not on public-PoC availability — a deterministic LPE with a public PoC is exploitable from disclosure-minus-zero regardless of the 48h ML3 window",
3999
+ "The maturity ladder does not differentiate between exploitable-from-disclosure (public PoC + deterministic primitive) and theoretically-exploitable, so the highest-tempo bucket is still slower than the threat",
4000
+ "No requirement to deploy reversible compensating controls (kernel-module blacklist, syscall filter) while the patch cycle proceeds, even when the vendor offers them in the same advisory window"
4001
+ ],
4002
+ "real_requirement": "ISM-1546 implementation must add: (1) a PoC-availability-aware tempo overlay where deterministic LPEs with public PoCs trigger a same-day-mitigation requirement separate from patch SLA, (2) a named compensating-control posture per maturity level (module blacklist at ML1, seccomp at ML2, live-patch at ML3), (3) explicit evidence that the operator inspected the advisory for non-binary mitigation paths before defaulting to the patch-only response.",
4003
+ "status": "open",
4004
+ "opened_date": "2026-05-17",
4005
+ "evidence_cves": [
4006
+ "CVE-2026-46300"
4007
+ ],
4008
+ "atlas_refs": [],
4009
+ "attack_refs": [
4010
+ "T1068"
4011
+ ],
4012
+ "theater_test": {
4013
+ "claim": "Our AU ISM-1546 patch programme meets Essential Eight Maturity Level 3 for kernel-class vulnerabilities.",
4014
+ "test": "Pull the patch-management evidence pack and select the most recent deterministic kernel LPE with public PoC (CVE-2026-46300 / Fragnesia is the reference case). Confirm whether the evidence shows (a) same-day deployment of a named compensating control (module blacklist, seccomp profile, live-patch) distinct from the binary patch, and (b) the operator documented inspection of the advisory for non-binary mitigation before defaulting to the patch SLA. Theater verdict if the evidence collapses to 'patch within 48h' without a named same-day compensating control, or if the compensating control was deployed without advisory-side evidence of evaluation.",
4015
+ "evidence_required": [
4016
+ "patch-management evidence pack for the reference deterministic LPE",
4017
+ "same-day compensating-control deployment record",
4018
+ "advisory inspection notes documenting non-binary mitigation evaluation"
4019
+ ],
4020
+ "verdict_when_failed": "compliance-theater"
4021
+ }
4022
+ },
4023
+ "ISO-27001-2022-A.5.7": {
4024
+ "framework": "ISO/IEC 27001:2022",
4025
+ "control_id": "A.5.7",
4026
+ "control_name": "Threat intelligence",
4027
+ "designed_for": "Information about information-security threats is collected and analysed to produce threat intelligence. Output feeds risk-management, vulnerability-management, incident-management, and awareness programmes.",
4028
+ "misses": [
4029
+ "Threat intelligence collection is treated as feed ingestion; the control does not require an operational pivot when intel surfaces a same-family sequel to a previously-patched bug (Dirty Frag → Fragnesia is the reference case)",
4030
+ "AI-attack-development feeds (AI-assisted discovery, AI-built exploitation chains, AI-orchestrated supply-chain attacks) are not explicitly enumerated as a feed category, despite being a current-reality threat per Hard Rule #7",
4031
+ "Threat-intelligence-to-action latency is undefined; intel may be 'collected' weeks before the operational response, with no control text requiring conversion-SLA from intel to action"
4032
+ ],
4033
+ "real_requirement": "A.5.7 implementation must add: (1) AI-attack-development feeds as a named feed category (GTIG zero-day attribution, Anthropic / OpenAI / Google threat reports, Zellic / depthfirst / Big Sleep disclosure channels), (2) intel-to-action conversion-SLA per threat category (deterministic LPE same-family sequel: 24h to compensating control), (3) explicit operational-pivot list mapping intel signal to immediate non-patch action (module blacklist, syscall filter, egress block, MFA enforcement).",
4034
+ "status": "open",
4035
+ "opened_date": "2026-05-17",
4036
+ "evidence_cves": [
4037
+ "CVE-2026-46300"
4038
+ ],
4039
+ "atlas_refs": [
4040
+ "AML.T0010"
4041
+ ],
4042
+ "attack_refs": [
4043
+ "T1068"
4044
+ ],
4045
+ "theater_test": {
4046
+ "claim": "Our ISO 27001:2022 A.5.7 threat-intelligence programme drives operational action against current-reality threats including AI-assisted attack development.",
4047
+ "test": "Pull the threat-intelligence feed inventory and the last 12 months of intel-driven action records. Confirm explicit enumeration of AI-attack-development feed sources (GTIG, vendor threat reports, AI-assisted-disclosure outlets). Confirm an intel-to-action conversion-SLA per threat category. Sample the most recent same-family sequel disclosure (Fragnesia following Dirty Frag, or equivalent) and verify a compensating-control action fired within the SLA. Theater verdict if AI-attack-development feeds are absent from the inventory, or if intel-to-action conversion-SLA is undocumented, or if the sampled same-family sequel produced no operational pivot.",
4048
+ "evidence_required": [
4049
+ "threat-intelligence feed inventory with AI-attack-development category",
4050
+ "intel-to-action conversion-SLA per threat category",
4051
+ "operational pivot record for the most recent same-family sequel disclosure"
4052
+ ],
4053
+ "verdict_when_failed": "compliance-theater"
4054
+ }
4055
+ },
4056
+ "NIS2-Art21-supply-chain": {
4057
+ "framework": "EU NIS2 Directive (Directive (EU) 2022/2555)",
4058
+ "control_id": "Art-21-supply-chain",
4059
+ "control_name": "Supply chain security measures",
4060
+ "designed_for": "Article 21(2)(d) — supply-chain security including security-related aspects concerning the relationships between each entity and its direct suppliers or service providers. Covers risk-management measures for the supply chain, including transitive dependencies where systemically relevant.",
4061
+ "misses": [
4062
+ "Generic supply-chain controls do not address ecosystem-specific compromise classes — npm registry account-recovery via expired maintainer-email domain, postinstall vs main-module payload distinction, and registry-account MFA enforcement are not enumerated",
4063
+ "Container-runtime supply chain is not differentiated from application-runtime supply chain — the runtime (containerd, runc, CRI-O) and the workloads it executes have different exposure shapes that the directive collapses",
4064
+ "Maintainer-account integrity is presumed; the directive does not require monitoring of maintainer-email-domain expiry, registry-side MFA enforcement on critical-path packages, or post-publish freshness cooldowns as protective measures"
4065
+ ],
4066
+ "real_requirement": "NIS2 Art. 21 supply-chain measures must add ecosystem-specific controls: (1) container-runtime supply chain enumerated distinct from application supply chain with separate risk-management posture, (2) npm / PyPI / RubyGems / crates.io maintainer-account integrity monitoring (email-domain expiry, MFA enforcement, registry-side anomaly detection), (3) post-publish cooldown periods on consumption of fresh releases from systemically-important upstream maintainers, (4) postinstall vs main-module payload distinction in consumer-side defence (--ignore-scripts is insufficient against main-module payloads), (5) lockfile audit against known-malicious version sets during the active exposure window.",
4067
+ "status": "open",
4068
+ "opened_date": "2026-05-17",
4069
+ "evidence_cves": [
4070
+ "MAL-2026-NODE-IPC-STEALER",
4071
+ "MAL-2026-TANSTACK-MINI"
4072
+ ],
4073
+ "atlas_refs": [
4074
+ "AML.T0010",
4075
+ "AML.T0020"
4076
+ ],
4077
+ "attack_refs": [
4078
+ "T1195.001",
4079
+ "T1195.002"
4080
+ ],
4081
+ "theater_test": {
4082
+ "claim": "Our NIS2 Art. 21 supply-chain security programme covers ecosystem-specific compromise classes including container runtime and registry account-recovery abuse.",
4083
+ "test": "Pull the supply-chain risk-management evidence pack. Confirm container-runtime supply chain is enumerated distinct from application supply chain. Confirm maintainer-account integrity monitoring (email-domain expiry tracking, registry-side MFA enforcement evidence) for critical-path packages. Sample the most recent registry account-recovery incident (MAL-2026-NODE-IPC-STEALER reference case) and verify the consumer-side response covered lockfile audit against the malicious version set during the exposure window. Theater verdict if container runtime and application runtime collapse into a single supply-chain register, or if maintainer-account integrity monitoring is undocumented, or if the sampled incident response did not include lockfile audit within the exposure window.",
4084
+ "evidence_required": [
4085
+ "supply-chain register differentiating container runtime from application runtime",
4086
+ "maintainer-account integrity monitoring records for critical-path packages",
4087
+ "lockfile audit log from the reference registry account-recovery incident"
4088
+ ],
4089
+ "verdict_when_failed": "compliance-theater"
4090
+ }
3948
4091
  }
3949
4092
  }
@@ -3,6 +3,7 @@
3
3
  "schema_version": "1.3.0",
4
4
  "version": "1.3.0",
5
5
  "last_updated": "2026-05-15",
6
+ "last_threat_review": "2026-05-17",
6
7
  "note": "Multi-jurisdiction framework registry. patch_sla in hours. notification_sla in hours. source field must be primary regulatory source. v1.3.0 expansion: NO, MX, AR, TR, TH, PH, US_CALIFORNIA top-level jurisdictions added; EU member-state sub-regulator blocks added for Germany (BSI), France (ANSSI), Spain (AEPD + AESIA), Italy (ACN + AgID); EU-level technical body ENISA added as cross-cutting reference. v1.2.0 expansion: IL, CH, HK, TW, ID, VN, US_NYDFS added; JP expanded with APPI/PPC, FISC, NISC, METI, Economic Security Promotion Act, AI Strategy Council guidance. v1.1.0 expansion: BR, CN, ZA, AE, SA, NZ, KR, CL added; IN and CA enriched with data-protection law entries (DPDPA, Quebec Law 25, PIPEDA).",
7
8
  "tlp": "CLEAR",
8
9
  "source_confidence": {
@@ -51,6 +51,11 @@
51
51
  "playbook_id": "mcp",
52
52
  "condition": "finding.includes_mcp_server_credential_exposure == true"
53
53
  }
54
+ ],
55
+ "fed_by": [
56
+ "llm-tool-use-exfil",
57
+ "mcp",
58
+ "sbom"
54
59
  ]
55
60
  },
56
61
  "domain": {