@blamejs/exceptd-skills 0.18.29 → 0.19.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.
@@ -243,6 +243,7 @@
243
243
  "CVE-2026-30624",
244
244
  "CVE-2026-30625",
245
245
  "CVE-2026-42271",
246
+ "CVE-2026-8037",
246
247
  "MAL-2026-3083"
247
248
  ],
248
249
  "framework_controls_partially_addressing": [
@@ -1771,7 +1772,8 @@
1771
1772
  "CVE-2026-45247",
1772
1773
  "CVE-2026-45659",
1773
1774
  "CVE-2026-50522",
1774
- "CVE-2026-58644"
1775
+ "CVE-2026-58644",
1776
+ "CVE-2026-63077"
1775
1777
  ],
1776
1778
  "framework_controls_partially_addressing": [
1777
1779
  "NIST-800-53-SI-10",
@@ -87,11 +87,11 @@
87
87
  "poc_description": "Chain component — exploits ESP/IPsec subsystem. Requires combination with CVE-2026-43500 or independent gadget chain.",
88
88
  "weaponization_stage": "partially_weaponized",
89
89
  "ai_discovery_confirmed": true,
90
- "ai_discovery_source": "vendor_research",
90
+ "ai_discovery_source": "bug_bounty_ai_augmented",
91
91
  "ai_assist_factor": "high",
92
92
  "ai_discovery_notes": "Disclosed by Hyunwoo Kim; AI-assisted discovery assessed as likely by Sysdig + Help Net Security given 9-year exposure gap (ESP path landed Jan 2017) and same primitive class as AI-discovered Copy Fail.",
93
93
  "exploit_complexity": "moderate",
94
- "last_verified": "2026-05-15",
94
+ "last_verified": "2026-08-08",
95
95
  "verification_source": "NVD references, researcher (Hyunwoo Kim) disclosure, Sysdig analysis, Help Net Security"
96
96
  },
97
97
  "CVE-2026-43500": {
@@ -99,11 +99,11 @@
99
99
  "poc_description": "Chain component — RxRPC subsystem. Used with CVE-2026-43284.",
100
100
  "weaponization_stage": "partially_weaponized",
101
101
  "ai_discovery_confirmed": true,
102
- "ai_discovery_source": "vendor_research",
102
+ "ai_discovery_source": "bug_bounty_ai_augmented",
103
103
  "ai_assist_factor": "high",
104
104
  "ai_discovery_notes": "Co-disclosed sibling of CVE-2026-43284; same AI-assisted-discovery assessment applies.",
105
105
  "exploit_complexity": "moderate",
106
- "last_verified": "2026-05-15",
106
+ "last_verified": "2026-08-08",
107
107
  "verification_source": "NVD references, researcher (Hyunwoo Kim) disclosure, Sysdig analysis"
108
108
  },
109
109
  "CVE-2026-45321": {
@@ -141,7 +141,7 @@
141
141
  "exploit_class": "deterministic LPE primitive",
142
142
  "maturity_tier": "PoC",
143
143
  "ai_discovery_confirmed": true,
144
- "ai_discovery_source": "vendor_research",
144
+ "ai_discovery_source": "bug_bounty_ai_augmented",
145
145
  "ai_assist_factor": "very_high",
146
146
  "ai_discovery_notes": "Discovered by William Bowling (Zellic.io / V12 security team) with assistance from Zellic's AI-agentic code-auditing tool. Anchor case for AI-driven autonomous discovery in 2026; cycle-5 backfill correction to the originally-tagged ai_discovery_confirmed=false.",
147
147
  "ai_assisted_weaponization": false,
@@ -150,7 +150,7 @@
150
150
  "active_exploitation": "none",
151
151
  "discovered_at": "2026-05-13",
152
152
  "poc_observed_at": "2026-05-13",
153
- "last_verified": "2026-05-14",
153
+ "last_verified": "2026-08-08",
154
154
  "verification_source": "NVD CVE-2026-46300, V12 security team disclosure, AlmaLinux + CloudLinux advisories, Microsoft Security Blog (Dirty Frag family analysis)"
155
155
  },
156
156
  "CVE-2024-21626": {
@@ -162,9 +162,9 @@
162
162
  "ai_assist_factor": "low",
163
163
  "ai_assisted_weaponization": false,
164
164
  "exploit_complexity": "low",
165
- "active_exploitation": "confirmed",
166
- "last_verified": "2026-05-15",
167
- "verification_source": "NVD, CISA KEV, Snyk Labs Leaky Vessels disclosure"
165
+ "active_exploitation": "none",
166
+ "last_verified": "2026-08-08",
167
+ "verification_source": "NVD, Snyk Labs Leaky Vessels disclosure, CISA KEV catalog (checked 2026-08-08: not listed, and never listed — the catalog carries no entry added on the previously-claimed 2024-04-08)"
168
168
  },
169
169
  "CVE-2024-3094": {
170
170
  "poc_status": "public",
@@ -1169,7 +1169,9 @@
1169
1169
  "CVE-2026-58644",
1170
1170
  "CVE-2026-60137",
1171
1171
  "CVE-2026-63030",
1172
+ "CVE-2026-63077",
1172
1173
  "CVE-2026-6973",
1174
+ "CVE-2026-8037",
1173
1175
  "MAL-2025-AI-FOUND-FFMPEG-BIGSLEEP"
1174
1176
  ],
1175
1177
  "atlas_refs": [],
@@ -1751,6 +1753,7 @@
1751
1753
  "CVE-2026-42897",
1752
1754
  "CVE-2026-42945",
1753
1755
  "CVE-2026-45321",
1756
+ "CVE-2026-8037",
1754
1757
  "MAL-2026-3083",
1755
1758
  "MAL-2026-MOIKA-DEPCONFUSION",
1756
1759
  "MAL-2026-NODE-IPC-STEALER",
@@ -3059,6 +3062,8 @@
3059
3062
  "CVE-2026-58644",
3060
3063
  "CVE-2026-60137",
3061
3064
  "CVE-2026-63030",
3065
+ "CVE-2026-63077",
3066
+ "CVE-2026-8037",
3062
3067
  "CVE-2026-9082"
3063
3068
  ],
3064
3069
  "atlas_refs": [],
@@ -5172,8 +5177,10 @@
5172
5177
  "CVE-2026-58644",
5173
5178
  "CVE-2026-60137",
5174
5179
  "CVE-2026-63030",
5180
+ "CVE-2026-63077",
5175
5181
  "CVE-2026-6973",
5176
5182
  "CVE-2026-7473",
5183
+ "CVE-2026-8037",
5177
5184
  "CVE-2026-9082"
5178
5185
  ],
5179
5186
  "atlas_refs": [],
@@ -9596,9 +9603,11 @@
9596
9603
  "CVE-2026-58644",
9597
9604
  "CVE-2026-60137",
9598
9605
  "CVE-2026-63030",
9606
+ "CVE-2026-63077",
9599
9607
  "CVE-2026-6973",
9600
9608
  "CVE-2026-7473",
9601
9609
  "CVE-2026-7482",
9610
+ "CVE-2026-8037",
9602
9611
  "CVE-2026-8398",
9603
9612
  "CVE-2026-9082",
9604
9613
  "CVE-2026-9198",
@@ -9942,6 +9951,7 @@
9942
9951
  "CVE-2026-31229",
9943
9952
  "CVE-2026-31230",
9944
9953
  "CVE-2026-48027",
9954
+ "CVE-2026-63077",
9945
9955
  "CVE-2026-8398",
9946
9956
  "MAL-2025-PYPI-COLORAMA-SOLANA-STEALER",
9947
9957
  "MAL-2026-MOIKA-DEPCONFUSION",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "_meta": {
3
3
  "schema_version": "1.1.0",
4
- "last_updated": "2026-08-06",
4
+ "last_updated": "2026-08-08",
5
5
  "last_threat_review": "2026-05-17",
6
6
  "purpose": "Zero-day learning loop output. Each entry maps a CVE to: attack vector, defense chain analysis, framework coverage, new control requirements generated, and exposure scoring. v1.1.0 (2026-05-15): every entry now carries ai_discovered_zeroday boolean + ai_discovery_source enum + ai_discovery_date + ai_assist_factor ladder, per AGENTS.md Hard Rule #7.",
7
7
  "note": "Never delete entries. Closed gaps are marked status: closed. History is data.",
@@ -17,7 +17,7 @@
17
17
  "rebuild_after_days": 365,
18
18
  "note": "Per-entry last_verified governs decay. Skills depending on this catalog must check entry freshness before high-stakes use."
19
19
  },
20
- "entry_count": 1023
20
+ "entry_count": 1025
21
21
  },
22
22
  "CVE-2026-31431": {
23
23
  "name": "Copy Fail",
@@ -1139,7 +1139,7 @@
1139
1139
  "id": "NEW-CTRL-028",
1140
1140
  "name": "CONTAINER-RUNTIME-PATCH-SLA-24H",
1141
1141
  "description": "Container-runtime CVEs (runc, containerd, CRI-O) listed in CISA KEV require a 24-hour mitigation SLA. Container restart is a hard requirement — runc patches do not apply to already-running containers.",
1142
- "evidence": "CVE-2024-21626 — KEV-listed 2024-04-08 with confirmed active exploitation; patch requires container restart, not just package update.",
1142
+ "evidence": "CVE-2024-21626 — a container-escape flaw in runc, the runtime under Docker, containerd, Kubernetes and podman, where remediation means replacing the runtime binary and restarting every container rather than applying a package update. Not CISA KEV-listed, so no federal deadline forces the restart; the SLA has to come from the organisation's own runtime-patch policy.",
1143
1143
  "gap_closes": [
1144
1144
  "NIST-800-53-SC-39",
1145
1145
  "CIS-Kubernetes-Benchmark-5.7"
@@ -3591,7 +3591,7 @@
3591
3591
  "id": "NEW-CTRL-001",
3592
3592
  "name": "CISA-KEV-RESPONSE-SLA",
3593
3593
  "description": "4h KEV-listing mitigation SLA applies; breach-confirmed exploitation makes this load-bearing.",
3594
- "evidence": "CVE-2025-1094 — KEV-listed 2025-02-13; BeyondTrust + US Treasury breaches.",
3594
+ "evidence": "CVE-2025-1094 — used in the BeyondTrust Remote Support intrusions reported by Rapid7, chained with CVE-2024-12356 (KEV 2024-12-19) and CVE-2024-12686 (KEV 2025-01-13). The KEV response clock reaches this flaw through those chain partners rather than through a listing of its own, which is exactly the case a KEV-triggered SLA has to cover: the unlisted link in a listed chain.",
3595
3595
  "gap_closes": [
3596
3596
  "NIST-800-53-SI-10",
3597
3597
  "PCI-DSS-4.0-6.2.4",
@@ -58371,5 +58371,186 @@
58371
58371
  ]
58372
58372
  }
58373
58373
  ]
58374
+ },
58375
+ "CVE-2026-63077": {
58376
+ "name": "JetBrains TeamCity Deserialization of Untrusted Data Vulnerability",
58377
+ "lesson_date": "2026-08-08",
58378
+ "ai_discovered_zeroday": false,
58379
+ "ai_discovery_source": "human_researcher",
58380
+ "ai_discovery_date": "2026-08-05",
58381
+ "ai_assist_factor": "none",
58382
+ "attack_vector": {
58383
+ "description": "An unauthenticated attacker POSTs to TeamCity's agent-polling endpoint /app/agents/v1/register to enroll a synthetic build agent (agentAddress=127.0.0.1, agentPort=9090, a random authToken) and receives a TeamCity-AgentSessionId, then posts an XStream XML gadget chain to /app/agents/v1/commands/error carrying that session header. XStream 1.4.20.3 is configured with an allowlist that retained the library's default type permissions, so the document deserializes into a working chain that drives an in-memory HSQLDB SCRIPT command and writes a JSP polyglot to ../webapps/ROOT/<hex>.jspws. A single GET of the dropped file compiles the polyglot and runs java.lang.Runtime.getRuntime().exec() with the attacker's OS command as the TeamCity server process - one unauthenticated request chain from network reachability to code execution over the whole CI secret store and build-artifact surface.",
58384
+ "privileges_required": "none - CVSS PR:N. The exploit mints its own agent session at /app/agents/v1/register, so no TeamCity account, API token or agent authorization token is required; the only precondition is network reachability to the server.",
58385
+ "complexity": "low - AC:L/UI:N/S:U. The gadget chain is deterministic, there is no race and no user interaction, and Rapid7's 446-line Python PoC reduces the whole path to one command. CISA's SSVC decision records exploitation=active, automatable=yes, technicalImpact=total.",
58386
+ "ai_factor": "Not AI-discovered - reported privately to JetBrains by external researcher Antoni Tremblay on 2026-07-10 and disclosed with a fix on 2026-07-27; the public exploit was hand-written by Rapid7's Stephen Fewer. No AI tooling is credited in the JetBrains advisory, the JetBrains active-exploitation update, the Rapid7 root-cause analysis, or the PoC, and no AI assistance is documented in weaponization."
58387
+ },
58388
+ "defense_chain": {
58389
+ "prevention": {
58390
+ "what_would_have_worked": "Upgrade TeamCity On-Premises to 2025.11.7 or 2026.1.3, or install JetBrains' security patch plugin (available for 2017.1+, hot-loads without a restart on 2018.2 and later), and keep the agent-polling surface off untrusted networks so /app/agents/v1/register is unreachable from the internet in the first place.",
58391
+ "was_this_required": true,
58392
+ "framework_requiring_it": "CISA BOD 26-04 (KEV remediation, added 2026-08-05)",
58393
+ "adequacy": "The upgrade removes the deserialization sink outright and needs no live-patch tooling, but the fix shipped 2026-07-27 and exploitation followed within days, so patching alone does not account for the window between disclosure and deployment: any server that was internet-reachable during it must be treated as potentially compromised rather than merely patched. TeamCity Cloud was mitigated by JetBrains and required no customer action."
58394
+ },
58395
+ "detection": {
58396
+ "what_would_have_worked": "Grep teamcity-server.log for com.thoughtworks.xstream.converters.ConversionException (attempted or successful exploitation) and com.thoughtworks.xstream.security.ForbiddenClassException naming HSQLMetadataStorage$SchemaMismatchException (a blocked attempt on a patched server), alongside freemarker.core._TemplateModelException on the 'connection' property and org.hsqldb.HsqlException 'file input/output error' for .jspws paths; alert on build agents registering with 'scan'-prefixed names; and file-integrity-monitor webapps/ROOT for unexpected *.jspws files.",
58397
+ "was_this_required": false,
58398
+ "framework_requiring_it": null,
58399
+ "adequacy": "These signals are high-fidelity and free to deploy, but on an unpatched server they are post-compromise: the ConversionException is only written once the gadget chain has already deserialized, and the .jspws artifact only appears after the webshell is on disk. The ForbiddenClassException on a patched server is the one pre-impact signal, and it exists only because the patch already blocked the class."
58400
+ },
58401
+ "response": {
58402
+ "what_would_have_worked": "Remove every *.jspws file from the TeamCity webroot, delete attacker-registered agents (notably the 'scan'-prefixed ones JetBrains named), rotate all credentials the server held - VCS tokens, artifact-repository and cloud keys, signing material, agent authorization tokens - and review builds and artifacts produced during the exposure window for tampering before they propagate downstream.",
58403
+ "was_this_required": false,
58404
+ "framework_requiring_it": null,
58405
+ "adequacy": "Credential rotation is the only reliable containment, because execution as the TeamCity server process reads the entire CI secret store, and artifact review is the only way to bound downstream impact on the pipelines the server feeds. Nothing in scope mandates either step after a build-server compromise, so operators who treat the upgrade as closure leave stolen secrets valid and tampered artifacts unexamined."
58406
+ }
58407
+ },
58408
+ "framework_coverage": {
58409
+ "NIST-800-53-SI-2": {
58410
+ "covered": true,
58411
+ "adequate": false,
58412
+ "gap": "SI-2 had almost no slack to work with here. JetBrains shipped the fix on 2026-07-27, reports of in-the-wild exploitation of the unauthenticated agent-polling RCE followed within days, and CISA allowed three days on the KEV clock (added 2026-08-05, due 2026-08-08). An SI-2 flaw-remediation cadence measured in weeks - which is what most implementations actually attest to - leaves an internet-facing TeamCity server exploitable for the entire period an automatable, PoC-backed pre-auth RCE is being weaponized."
58413
+ },
58414
+ "NIS2-Art21-supply-chain": {
58415
+ "covered": true,
58416
+ "adequate": false,
58417
+ "gap": "Art.21's supply-chain clauses point outward at supplier vetting and third-party assurance, but the injection point here is the organization's own build server. Code execution as the TeamCity process reads the CI credential store, tampers with build artifacts and reaches every downstream pipeline the server feeds - a supply-chain compromise originating inside internal build infrastructure that no amount of supplier due diligence detects or prevents."
58418
+ },
58419
+ "UK-CAF-B4": {
58420
+ "covered": true,
58421
+ "adequate": false,
58422
+ "gap": "CAF B4 secure-configuration outcomes assume untrusted network input never reaches an unsafe deserializer, so the operator-side measures B4 drives - configuration baselines, hardening guides, firewalling - never inspect the XStream 1.4.20.3 allowlist that shipped with the library's default type permissions retained. The unauthenticated /app/agents/v1/commands/error path deserialized attacker XML into a working gadget chain by product design, and no B4 activity remediates that short of the vendor fix."
58423
+ },
58424
+ "AU-Essential-8-Patch": {
58425
+ "covered": true,
58426
+ "adequate": false,
58427
+ "gap": "The 48-hour internet-facing patch requirement was technically satisfiable - the fix existed from 2026-07-27 - but Essential Eight never asks whether a CI server should be internet-facing at all. With no control requiring network isolation of the build plane, an instance still reachable while the 48-hour clock ran was exposed to a one-shot, automatable pre-auth RCE, and the maturity model records a compliant patching outcome either way."
58428
+ },
58429
+ "ISO-27001-2022-A.8.8": {
58430
+ "covered": true,
58431
+ "adequate": false,
58432
+ "gap": "A.8.8 programmes that rank remediation by score would have buried this: EPSS read 0.010 (58th percentile) on the KEV date even though JetBrains had already reported exploitation in the wild. A CVSS-plus-EPSS queue defers a 9.8 unauthenticated RCE behind higher-probability, lower-impact items; the KEV listing and the vendor's exploitation update were the real prioritization signals, and A.8.8 does not require them to override the probabilistic score."
58433
+ }
58434
+ },
58435
+ "new_control_requirements": [
58436
+ {
58437
+ "id": "NEW-CTRL-001",
58438
+ "name": "CISA-KEV-RESPONSE-SLA",
58439
+ "description": "For any CVE listed in CISA KEV: deploy verified mitigation (patch, live patch, or documented compensating controls) within 4 hours of KEV listing or patch availability, whichever is later.",
58440
+ "evidence": "CVE-2026-63077 — JetBrains fixed it on 2026-07-27 and confirmed in-the-wild exploitation days later; CISA added it to KEV on 2026-08-05 with a 2026-08-08 due date while EPSS still read 0.010 (58th percentile), so score-driven queues deprioritized it. A KEV-triggered 4-hour clock — satisfied by the 2025.11.7 / 2026.1.3 upgrade, the 2017.1+ security patch plugin (no restart on 2018.2+), or documented isolation of the agent-polling surface — is the only cadence that beats a one-shot, automatable pre-auth RCE with a public 446-line PoC to an internet-facing build server.",
58441
+ "gap_closes": [
58442
+ "NIST-800-53-SI-2",
58443
+ "ISO-27001-2022-A.8.8",
58444
+ "AU-Essential-8-Patch"
58445
+ ]
58446
+ },
58447
+ {
58448
+ "id": "NEW-CTRL-125",
58449
+ "name": "SERVICE-INTERNAL-PROTOCOL-DESERIALIZATION-HARDENING",
58450
+ "description": "A server product that exposes an internal coordination protocol — build-agent polling, cluster membership, node replication, management RPC — must not deserialize input arriving on it without both authenticating the peer and constraining the deserializer to an explicit allow-list of expected types, and the listener must be bound to the coordination network rather than to all interfaces. Default-permissive type handling in the serialization library counts as no allow-list at all. The distinguishing test: from an unauthenticated host on a segment that can reach the coordination port, send a serialized object of a type the protocol never legitimately carries and confirm the connection is refused or the type rejected before any object is constructed — a product whose internal protocol is documented as trusted, but which listens on 0.0.0.0 and accepts whatever the library will rehydrate, is exploitable by anyone who can reach the port.",
58451
+ "evidence": "CVE-2026-63077 — TeamCity's agent-polling protocol accepts XML from an unauthenticated caller and hands it to an XStream instance still carrying the library's default type permissions, so a gadget chain writes a JSP polyglot into the webroot and runs as the build server. CVE-2026-34486 is the same shape one product over: the Tomcat cluster receiver forwarding a message whose decryption failed into an unfiltered ObjectInputStream. Both are internal coordination protocols the vendor documented as trusted and shipped listening to anyone who could reach the port.",
58452
+ "gap_closes": [
58453
+ "NIST-800-53-SI-2",
58454
+ "UK-CAF-B4",
58455
+ "ISO-27001-2022-A.8.8"
58456
+ ]
58457
+ }
58458
+ ]
58459
+ },
58460
+ "CVE-2026-8037": {
58461
+ "name": "Progress LoadMaster Command Injection Vulnerability",
58462
+ "lesson_date": "2026-08-08",
58463
+ "ai_discovered_zeroday": false,
58464
+ "ai_discovery_source": "human_researcher",
58465
+ "ai_discovery_date": "2026-08-07",
58466
+ "ai_assist_factor": "none",
58467
+ "attack_vector": {
58468
+ "description": "An attacker who can reach the LoadMaster management API sends one unauthenticated POST to /accessv2 whose apiuser value is nothing but single quotes, forcing escape_quotes() to allocate an uninitialized heap buffer it never null-terminates, while dozens of sibling JSON keys in the same request spray a shell-metacharacter payload across freed chunks of the same size. The escaped username is then placed into a single-quoted shell argument that reads past its own bytes into the sprayed data, and the appliance executes the attacker's command.",
58469
+ "privileges_required": "none — PR:N; unauthenticated, and the quote-only apiuser is a trigger rather than a credential guess",
58470
+ "complexity": "low — AC:L, no user interaction and no race; the constraint is reachability (AV:A, and only when the management API is enabled) rather than exploit difficulty",
58471
+ "ai_factor": "Not AI-discovered. Reported through Trend Micro's Zero Day Initiative by Syed Ibrahim Ahmed and Jacky Yang of TrendAI Research (ZDI-26-340/341/342, all published 2026-06-09); the 'TrendAI' name is Trend Micro's branding for ZDI's research arm and is not a claim of AI-assisted discovery. No AI involvement is credited in any advisory or in the public analysis."
58472
+ },
58473
+ "defense_chain": {
58474
+ "prevention": {
58475
+ "what_would_have_worked": "Upgrade to Kemp LoadMaster 7.2.63.2 (GA) or 7.2.54.18 (LTSF), or 7.2.63.2 for ECS Connection Manager and Connection Manager for ObjectScale — and, independently of the upgrade, disable the management API where it is not needed or confine it to a management network the attacker cannot reach.",
58476
+ "was_this_required": true,
58477
+ "framework_requiring_it": "CISA BOD 26-04 (KEV remediation, added 2026-08-07)",
58478
+ "adequacy": "The upgrade closes it, but the configuration-side control is the one that was available for the two months between the 2026-06-04 fix and the 2026-08-07 KEV listing, and it needs no maintenance window. Neither helps an appliance already reached: command execution on the ADC precedes any patch."
58479
+ },
58480
+ "detection": {
58481
+ "what_would_have_worked": "Alert on any /accessv2 request whose apiuser field contains a single quote, and on request bodies carrying repeated undefined sibling keys with identical padded values — then treat a 200 text/json response containing command output rather than an API result as confirmation.",
58482
+ "was_this_required": false,
58483
+ "framework_requiring_it": null,
58484
+ "adequacy": "Detection is unusually clean here because the trigger is a malformed username rather than a plausible one, so the signature has almost no legitimate traffic to compete with. It only works if the appliance forwards management-API request logs somewhere the attacker cannot reach once they own the device."
58485
+ },
58486
+ "response": {
58487
+ "what_would_have_worked": "Treat a confirmed hit as full appliance compromise: rebuild from known-good firmware rather than patching in place, rotate every TLS private key and certificate the LoadMaster terminated, invalidate the API key store, and review the balanced applications for onward access gained through the device.",
58488
+ "was_this_required": false,
58489
+ "framework_requiring_it": null,
58490
+ "adequacy": "Rebuild is the only reliable eviction path for an edge appliance, and key rotation is the part most often skipped — the attacker had code execution on the device holding the private keys for everything behind it."
58491
+ }
58492
+ },
58493
+ "framework_coverage": {
58494
+ "NIST-800-53-SI-2": {
58495
+ "covered": true,
58496
+ "adequate": false,
58497
+ "gap": "SI-2 is satisfied by a documented remediation cadence, and a monthly or quarterly appliance-patch cycle is a defensible one. It left roughly two months between Progress shipping the fix on 2026-06-04 and CISA's 2026-08-07 listing, during which watchTowr had published the patched function byte for byte and a Nuclei template was in the public catalog."
58498
+ },
58499
+ "EU-CRA-Art13": {
58500
+ "covered": true,
58501
+ "adequate": false,
58502
+ "gap": "Art.13 places the duty on the manufacturer to ship without known exploitable vulnerabilities, which does nothing for a deployer running an appliance already in the field. No CRA obligation tells the operator to treat their own edge ADC as an attack surface with its own patch clock, so a compliant purchase leaves the exposure exactly where it was."
58503
+ },
58504
+ "UK-CAF-B4": {
58505
+ "covered": true,
58506
+ "adequate": false,
58507
+ "gap": "B4 records the appliance as hardened on the strength of its data-plane configuration and never asks the question that decides this CVE: is the management API enabled, and who can reach it. The single control that turns pre-auth RCE into an unreachable code path is outside what a B4 assessment routinely inspects."
58508
+ },
58509
+ "AU-Essential-8-Patch": {
58510
+ "covered": true,
58511
+ "adequate": false,
58512
+ "gap": "The 48-hour band applies to internet-facing services, and a LoadMaster management API on a management network is often not classified as one, so the appliance inherits a slower target. The classification tracks network position rather than consequence, while CISA's SSVC rates the technical impact of this flaw as total."
58513
+ },
58514
+ "ISO-27001-2022-A.8.8": {
58515
+ "covered": true,
58516
+ "adequate": false,
58517
+ "gap": "A.8.8 ranks by risk score, and here the score was loud enough — EPSS 0.85 at the 99.7th percentile. What it cannot express is that the asset is a control plane: compromising the ADC hands over the TLS keys, the traffic and the WAF that other A.8 controls assume are intact, so ranking it alongside an ordinary server patch understates the blast."
58518
+ }
58519
+ },
58520
+ "new_control_requirements": [
58521
+ {
58522
+ "id": "NEW-CTRL-001",
58523
+ "name": "CISA-KEV-RESPONSE-SLA",
58524
+ "description": "For any CVE listed in CISA KEV: deploy verified mitigation (patch, live patch, or documented compensating controls) within 4 hours of KEV listing or patch availability, whichever is later.",
58525
+ "evidence": "CVE-2026-8037 — KEV-listed 2026-08-07 with a three-day due date against an appliance whose fix had been public since 2026-06-04 and whose patched function watchTowr had published byte for byte on 2026-06-29. The KEV clock's compensating-controls limb is what covers this case, because disabling or network-confining the LoadMaster management API removes reachability immediately and needs no maintenance window, while the firmware upgrade needs one.",
58526
+ "gap_closes": [
58527
+ "NIST-800-53-SI-2",
58528
+ "EU-CRA-Art13",
58529
+ "UK-CAF-B4"
58530
+ ]
58531
+ },
58532
+ {
58533
+ "id": "NEW-CTRL-030",
58534
+ "name": "PERIMETER-DEVICE-ZERODAY-SLA-TIER",
58535
+ "description": "Compliance frameworks must define a distinct patch SLA tier for pre-auth RCE on perimeter-trust-boundary devices (firewalls, VPN concentrators, WAFs, edge load-balancers). Tier requirement: vendor-mitigation deployed within 4 hours of KEV listing OR isolation of the vulnerable interface; standard 14/30-day SLAs do not apply because the device IS the trust boundary.",
58536
+ "evidence": "CVE-2026-8037 — a pre-authentication command injection on a load balancer that terminates TLS for the applications behind it, rated EPSS 0.85 at the 99.7th percentile with a public Nuclei template. A standard 14- or 30-day appliance-patch SLA prices this like an ordinary server, which is exactly the mismatch a perimeter-device tier exists to correct: the device IS the trust boundary.",
58537
+ "gap_closes": [
58538
+ "NIST-800-53-SI-2",
58539
+ "EU-CRA-Art13",
58540
+ "UK-CAF-B4"
58541
+ ]
58542
+ },
58543
+ {
58544
+ "id": "NEW-CTRL-032",
58545
+ "name": "PERIMETER-COMPROMISE-REBUILD-NOT-PATCH",
58546
+ "description": "Pre-rehearsed IR runbook for any perimeter device that suffers a pre-auth RCE CVE in active exploitation MUST default to config-exfil + rebuild + credential rotation, not patch-in-place. Patch-in-place leaves attacker-installed implants intact.",
58547
+ "evidence": "CVE-2026-8037 — exploitation yields OS command execution on the appliance holding the TLS private keys and API key store for everything it fronts, so patching in place leaves any implant and any stolen key material intact. Recovery has to default to rebuild from known-good firmware plus rotation of every certificate the LoadMaster terminated.",
58548
+ "gap_closes": [
58549
+ "NIST-800-53-SI-2",
58550
+ "EU-CRA-Art13",
58551
+ "UK-CAF-B4"
58552
+ ]
58553
+ }
58554
+ ]
58374
58555
  }
58375
58556
  }
@@ -478,6 +478,16 @@ const ADVISORIES_SOURCE = {
478
478
  name: 'advisories',
479
479
  description: 'Primary-source advisory feeds (Qualys TRU, Red Hat RHSA, Ubuntu USN, Zero Day Initiative / ZDI) — surfaces CVE IDs disclosed at T+0 to T+1 that lag NVD enrichment. Report-only — does not auto-write the catalog.',
480
480
  applies_to: 'data/cve-catalog.json',
481
+ // The no-op applyDiff below already refuses to write, but the flag is what
482
+ // the *callers* read. refresh-external only counts a source toward the
483
+ // upsert total when `!report_only`, and the refresh workflow gates its apply
484
+ // step and its entire open-pr job on that total being non-zero. This feed
485
+ // reports every CVE seen across USN / RHSA / ZDI / CISA that the catalog
486
+ // does not track — structurally in the thousands, and never zero, because
487
+ // the catalog deliberately does not carry every Ubuntu kernel CVE. Leaving
488
+ // the flag off therefore pinned the upsert count permanently above zero and
489
+ // made "open a PR only when something changed" unconditional.
490
+ report_only: true,
481
491
  async fetchDiff(ctx) {
482
492
  const results = await Promise.all(FEEDS.map((feed) => checkFeed(feed, ctx)));
483
493
  const allDiffs = [];