@blamejs/exceptd-skills 0.14.26 → 0.14.27

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.
@@ -55,7 +55,7 @@
55
55
  "ai_discovery_methodology": {
56
56
  "field_added": "2026-05-15",
57
57
  "agents_md_target": "Hard Rule #7 — '41% of 2025 zero-days were AI-discovered'. Catalog target rate floor: 0.40.",
58
- "current_rate": 0.029,
58
+ "current_rate": 0.028,
59
59
  "current_floor_enforced_by_test": 0.028,
60
60
  "ladder_to_target": [
61
61
  0.028,
@@ -68,7 +68,7 @@
68
68
  0.3,
69
69
  0.4
70
70
  ],
71
- "floor_correction_note": "v0.13.4: floor dropped from 0.15 → 0.13 after the v0.13.4 cleanup removed two stuck-draft CVEs (MAL-2026-ANTHROPIC-MCP-STDIO duplicate of CVE-2026-30623 + CVE-2026-GTIG-AI-2FA embargoed placeholder). The GTIG entry was the only ai_discovered=true of the two; catalog observed rate fell from 6/40 (0.15) to 5/38 (0.132). Floor is reset below the new observed rate to keep the test honest, and a new 0.13 rung is prepended to the ladder so monotonic non-decreasing is preserved without rewriting prior rungs. Prior correction note: v0.12.31 floor dropped 0.20 → 0.15 after the cycle-11 intake added six ai_discovered=false entries. v0.13.17: catalog grew 68 -> 72 with 4 non-AI Nightmare-Eclipse entries; observed rate falls from 12/68 (0.176) to 12/72 (0.208). Floor unchanged at 0.13 — still under observed. v0.13.17: catalog grew 72 -> 232 via CISA KEV bulk import; observed rate drops from 0.208 (15/72) to 0.065 (15/232) because KEV records lack AI-attribution metadata. Floor reset to 0.05 with new prepended ladder rung; existing rungs preserved. v0.13.17 round-2: catalog grew further to 312 via additional KEV bulk import; observed rate 0.038 (12/312). Floor lowered to 0.03 with a new prepended ladder rung to keep the test honest under bulk-import dilution. Prior rungs preserved; the 0.40 target ladder is unchanged. AI-attribution backfill for the 240 bulk-imported entries is operator-curation work in future cycles. v0.13.113: catalog grew to 402; observed rate 12/402 (0.0299) fell just under the 0.03 floor, so the floor was lowered to 0.029 with a prepended 0.029 ladder rung (prior rungs and the 0.40 target preserved). v0.13.122: AI-ecosystem CVE tranches grew the catalog to 414; observed rate 12/414 (0.0290) fell just under the 0.029 floor, so the floor was lowered to 0.028 with a prepended 0.028 ladder rung (prior rungs and the 0.40 target preserved).",
71
+ "floor_correction_note": "v0.13.4: floor dropped from 0.15 → 0.13 after the v0.13.4 cleanup removed two stuck-draft CVEs (MAL-2026-ANTHROPIC-MCP-STDIO duplicate of CVE-2026-30623 + CVE-2026-GTIG-AI-2FA embargoed placeholder). The GTIG entry was the only ai_discovered=true of the two; catalog observed rate fell from 6/40 (0.15) to 5/38 (0.132). Floor is reset below the new observed rate to keep the test honest, and a new 0.13 rung is prepended to the ladder so monotonic non-decreasing is preserved without rewriting prior rungs. Prior correction note: v0.12.31 floor dropped 0.20 → 0.15 after the cycle-11 intake added six ai_discovered=false entries. v0.13.17: catalog grew 68 -> 72 with 4 non-AI Nightmare-Eclipse entries; observed rate falls from 12/68 (0.176) to 12/72 (0.208). Floor unchanged at 0.13 — still under observed. v0.13.17: catalog grew 72 -> 232 via CISA KEV bulk import; observed rate drops from 0.208 (15/72) to 0.065 (15/232) because KEV records lack AI-attribution metadata. Floor reset to 0.05 with new prepended ladder rung; existing rungs preserved. v0.13.17 round-2: catalog grew further to 312 via additional KEV bulk import; observed rate 0.038 (12/312). Floor lowered to 0.03 with a new prepended ladder rung to keep the test honest under bulk-import dilution. Prior rungs preserved; the 0.40 target ladder is unchanged. AI-attribution backfill for the 240 bulk-imported entries is operator-curation work in future cycles. v0.13.113: catalog grew to 402; observed rate 12/402 (0.0299) fell just under the 0.03 floor, so the floor was lowered to 0.029 with a prepended 0.029 ladder rung (prior rungs and the 0.40 target preserved). v0.13.122: AI-ecosystem CVE tranches grew the catalog to 414; observed rate 12/414 (0.0290) fell just under the 0.029 floor, so the floor was lowered to 0.028 with a prepended 0.028 ladder rung (prior rungs and the 0.40 target preserved). v0.14.27: three non-AI CI/CD supply-chain entries grew the catalog to 423; observed rate 12/423 (0.0284), current_rate updated 0.029 -> 0.028; floor unchanged at 0.028 (still under observed).",
72
72
  "ladder_note": "Test floor advances when each rung is exceeded with a margin (>= floor + 0.05). Surfaces incremental tightening without coincidence-passing failures.",
73
73
  "gap_explanation": "Catalog skews toward 2024 vendor-disclosed CVEs (xz-utils, runc, CRI-O, MLflow, containerd, SolarWinds, Citrix, ConnectWise) and Pwn2Own Ireland 2025 entries (Synacktiv, DEVCORE, Summoning Team, CyCraft) where AI-tooling involvement was either not used or not credited in the public disclosure. The 41% figure in AGENTS.md Hard Rule #7 reflects the broader 2025 zero-day population reported by Google Threat Intelligence Group; catalog membership is curated against a different sampling frame (operational impact + framework-coverage need) and so will lag the population-level rate.",
74
74
  "discovery_source_enum": [
@@ -92,6 +92,325 @@
92
92
  },
93
93
  "last_threat_review": "2026-05-15"
94
94
  },
95
+ "CVE-2025-30066": {
96
+ "name": "tj-actions/changed-files GitHub Action Supply-Chain Compromise (secret exfiltration to workflow logs)",
97
+ "type": "supply-chain-compromise",
98
+ "cvss_score": 8.6,
99
+ "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N",
100
+ "cwe_refs": [
101
+ "CWE-506"
102
+ ],
103
+ "cisa_kev": true,
104
+ "cisa_kev_date": "2025-03-18",
105
+ "poc_available": true,
106
+ "poc_description": "The compromise itself is the live exploit. On 2025-03-14/15 a threat actor used a leaked Personal Access Token to repoint the action's tags v1 through v45.0.7 at commit 0e58ed8, which carried a base64-encoded Python payload (a memory dump via the runner process) that printed CI/CD secrets — AWS keys, npm tokens, the repository GITHUB_TOKEN, RSA private keys — into the publicly readable GitHub Actions workflow logs. Documented by StepSecurity (Harden-Runner detection), Wiz, Semgrep, Sysdig, and Palo Alto Unit 42.",
107
+ "ai_discovered": false,
108
+ "ai_discovery_source": "unknown",
109
+ "ai_discovery_notes": "Human-operated supply-chain compromise; no AI involvement in discovery or weaponization is documented.",
110
+ "ai_assisted_weaponization": false,
111
+ "ai_assisted_notes": "No AI tooling documented in the attack chain. The credential-harvesting payload was a static base64 Python memory dumper.",
112
+ "active_exploitation": "confirmed",
113
+ "active_exploitation_notes": "Actively exploited in the wild during the ~36-hour window the malicious tags were live; ~23,000 repositories referenced the action. CISA added to KEV 2025-03-18.",
114
+ "affected": "tj-actions/changed-files tags v1 through v45.0.7 (all consumers that referenced a mutable tag rather than a pinned commit SHA were served the malicious 0e58ed8 commit on 2025-03-14/15).",
115
+ "affected_versions": [
116
+ "tj-actions/changed-files v1 through v45.0.7 (mutable tags repointed to commit 0e58ed8)"
117
+ ],
118
+ "vector": "Mutable git-tag repointing. A stolen PAT moved the action's release tags to a malicious commit; every workflow that pinned the action by tag (the documented norm) pulled the trojaned code on its next run, which dumped the job's secrets to the workflow log.",
119
+ "complexity": "low",
120
+ "complexity_notes": "Once the tags were repointed, exploitation was automatic for any consumer pinning by tag — no per-target interaction required.",
121
+ "patch_available": true,
122
+ "patch_required_reboot": false,
123
+ "live_patch_available": false,
124
+ "live_patch_tools": [],
125
+ "vendor_update_paths": [
126
+ "Upgrade to tj-actions/changed-files@v46.0.1 or later (post-remediation)",
127
+ "Pin ALL GitHub Actions to a full-length 40-character commit SHA, never a tag or branch",
128
+ "Rotate every secret exposed to any workflow that ran the action between 2025-03-14 and 2025-03-15",
129
+ "Audit public workflow logs for leaked secrets and review GitHub's audit log for the period"
130
+ ],
131
+ "framework_control_gaps": {
132
+ "SLSA-v1.0-Build-L3": "SLSA build provenance does not bind a consumer's tag reference to a specific source revision; a repointed mutable tag silently substitutes the build inputs.",
133
+ "NIST-800-218-SSDF-PW.4": "Reuse of well-maintained components assumes the upstream artifact is immutable; a tag is mutable and the action had no publisher-side tamper control.",
134
+ "NIST-800-53-SR-11": "Component-authenticity controls assume signed/versioned artifacts; unsigned GitHub Action tags carry no integrity guarantee an SR-11 process can verify.",
135
+ "ISO-27001-2022-A.8.30": "Outsourced-development controls do not reach a third-party CI action maintained by an individual with no contractual relationship to the consumer.",
136
+ "OWASP-CICD-SEC-3": "Dependency-chain abuse: pinning by floating tag is the documented usage pattern, so the control that would have prevented this (SHA pinning) was not the default."
137
+ },
138
+ "atlas_refs": [],
139
+ "attack_refs": [
140
+ "T1195.001",
141
+ "T1552"
142
+ ],
143
+ "rwep_score": 78,
144
+ "rwep_factors": {
145
+ "cisa_kev": 25,
146
+ "poc_available": 20,
147
+ "ai_factor": 0,
148
+ "active_exploitation": 20,
149
+ "blast_radius": 28,
150
+ "patch_available": -15,
151
+ "live_patch_available": 0,
152
+ "reboot_required": 0
153
+ },
154
+ "rwep_notes": "Critical (RWEP 78). KEV-listed (25) + confirmed in-the-wild exploitation (20) + the live malicious artifact as PoC (20) + very large blast radius (28; ~23,000 dependent repositories, secrets exfiltrated), minus patch_available (15). Σ factors === rwep_score.",
155
+ "epss_score": 0.9183,
156
+ "epss_date": "2026-05-27",
157
+ "epss_note": "FIRST EPSS 0.9183 (99.70th percentile) as of 2026-05-27.",
158
+ "epss_source": "https://api.first.org/data/v1/epss?cve=CVE-2025-30066",
159
+ "iocs": {
160
+ "behavioral": [
161
+ "GitHub Actions workflow logs containing base64-encoded blobs or printed environment/secret values after a step running tj-actions/changed-files.",
162
+ "tj-actions/changed-files referenced by a tag (v1..v45) rather than a 40-char commit SHA during 2025-03-14/15.",
163
+ "Outbound network calls or memory-dump behavior from the changed-files step that are not part of its documented function."
164
+ ],
165
+ "indicators": [
166
+ "Malicious commit SHA 0e58ed8 in the tj-actions/changed-files history (tags repointed to it).",
167
+ "Payload fetched/embedded a memory-dumping Python script (gist-hosted in the original chain)."
168
+ ],
169
+ "_ioc_source_note": "Anchored to NVD CVE-2025-30066, CISA KEV, and the StepSecurity / Wiz / Semgrep / Sysdig public analyses."
170
+ },
171
+ "source_verified": "2026-05-28",
172
+ "verification_sources": [
173
+ "https://nvd.nist.gov/vuln/detail/CVE-2025-30066",
174
+ "https://www.cisa.gov/known-exploited-vulnerabilities-catalog",
175
+ "https://www.stepsecurity.io/blog/harden-runner-detection-tj-actions-changed-files-action-is-compromised",
176
+ "https://www.wiz.io/blog/github-action-tj-actions-changed-files-supply-chain-attack-cve-2025-30066",
177
+ "https://semgrep.dev/blog/2025/popular-github-action-tj-actionschanged-files-is-compromised/"
178
+ ],
179
+ "vendor_advisories": [
180
+ {
181
+ "vendor": "NVD",
182
+ "advisory_id": "CVE-2025-30066",
183
+ "url": "https://nvd.nist.gov/vuln/detail/CVE-2025-30066",
184
+ "severity": "high",
185
+ "published_date": "2025-03-15"
186
+ },
187
+ {
188
+ "vendor": "CISA KEV",
189
+ "advisory_id": "CVE-2025-30066",
190
+ "url": "https://www.cisa.gov/known-exploited-vulnerabilities-catalog",
191
+ "severity": "high",
192
+ "published_date": "2025-03-18"
193
+ }
194
+ ],
195
+ "last_updated": "2026-05-28",
196
+ "discovery_attribution_note": "Manually curated from NVD CVE-2025-30066 (CWE-506, CVSS 8.6) + CISA KEV (added 2025-03-18) + StepSecurity/Wiz/Semgrep/Sysdig public analyses. The March 2025 GitHub Actions supply-chain compromise; chained from the reviewdog/action-setup compromise (CVE-2025-30154), which is believed to have leaked the PAT used to repoint the changed-files tags.",
197
+ "_auto_imported": false,
198
+ "_intake_method": "manual-verified-curation",
199
+ "_kev_short_description": "tj-actions/changed-files GitHub Action tags were repointed to malicious code (CWE-506) that dumped CI/CD secrets to publicly readable workflow logs; remediate by pinning actions to commit SHAs and rotating exposed secrets."
200
+ },
201
+ "CVE-2025-30154": {
202
+ "name": "reviewdog/action-setup GitHub Action Supply-Chain Compromise (secret exfiltration to workflow logs)",
203
+ "type": "supply-chain-compromise",
204
+ "cvss_score": 8.6,
205
+ "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N",
206
+ "cwe_refs": [
207
+ "CWE-506"
208
+ ],
209
+ "cisa_kev": true,
210
+ "cisa_kev_date": "2025-03-24",
211
+ "poc_available": true,
212
+ "poc_description": "The compromise itself is the live exploit. reviewdog/action-setup@v1 was modified on 2025-03-11 between 18:42 and 20:31 UTC to inject code that base64-encodes and prints exposed secrets into the GitHub Actions workflow logs. Because the tag v1 was repointed, every consumer pinning by tag — and every downstream reviewdog action that internally uses action-setup@v1 (action-shellcheck, action-composite-template, action-staticcheck, action-ast-grep, action-typos) — was affected regardless of how the downstream action itself was pinned. Documented by Wiz and the reviewdog GHSA.",
213
+ "ai_discovered": false,
214
+ "ai_discovery_source": "unknown",
215
+ "ai_discovery_notes": "Human-operated supply-chain compromise; no AI involvement documented.",
216
+ "ai_assisted_weaponization": false,
217
+ "ai_assisted_notes": "No AI tooling documented. The reviewdog compromise is widely assessed to be the entry point that exposed the Personal Access Token later used in the tj-actions/changed-files compromise (CVE-2025-30066).",
218
+ "active_exploitation": "confirmed",
219
+ "active_exploitation_notes": "Actively exploited in the wild during the compromise window; CISA added to KEV 2025-03-24. Transitive blast radius via the five downstream reviewdog actions that consume action-setup@v1.",
220
+ "affected": "reviewdog/action-setup@v1 (compromised 2025-03-11 18:42-20:31 UTC), and transitively reviewdog/action-shellcheck, action-composite-template, action-staticcheck, action-ast-grep, and action-typos which invoke action-setup@v1 internally.",
221
+ "affected_versions": [
222
+ "reviewdog/action-setup@v1 (tag repointed to malicious commit)",
223
+ "reviewdog/action-shellcheck (via action-setup@v1)",
224
+ "reviewdog/action-composite-template (via action-setup@v1)",
225
+ "reviewdog/action-staticcheck (via action-setup@v1)",
226
+ "reviewdog/action-ast-grep (via action-setup@v1)",
227
+ "reviewdog/action-typos (via action-setup@v1)"
228
+ ],
229
+ "vector": "Mutable git-tag repointing of a transitively-included action. action-setup@v1 was trojaned; downstream reviewdog actions that pin action-setup@v1 internally pulled the malicious code regardless of how the consumer pinned the downstream action, dumping job secrets to the workflow log.",
230
+ "complexity": "low",
231
+ "complexity_notes": "Automatic for any consumer of the affected actions during the window; the transitive inclusion defeated consumer-side SHA pinning of the outer action.",
232
+ "patch_available": true,
233
+ "patch_required_reboot": false,
234
+ "live_patch_available": false,
235
+ "live_patch_tools": [],
236
+ "vendor_update_paths": [
237
+ "Pin reviewdog actions to a known-good full commit SHA predating 2025-03-11; the maintainer reverted the malicious changes",
238
+ "Pin ALL transitively-included actions by commit SHA where possible, and prefer actions that pin their own dependencies by SHA",
239
+ "Rotate every secret exposed to any workflow that ran an affected reviewdog action during the window",
240
+ "Audit public workflow logs and the GitHub audit log for the compromise period"
241
+ ],
242
+ "framework_control_gaps": {
243
+ "SLSA-v1.0-Build-L3": "Build provenance does not cover transitively-included actions; pinning the outer action by SHA still pulled a malicious inner action referenced by a mutable tag.",
244
+ "NIST-800-218-SSDF-PW.4": "Component-reuse controls do not address nested third-party CI actions whose own dependencies are tag-pinned outside the consumer's control.",
245
+ "NIST-800-53-SR-3": "Supply-chain controls inventory direct dependencies; a second-tier GitHub Action (action-setup pulled by action-shellcheck) routinely escapes that inventory.",
246
+ "OWASP-CICD-SEC-3": "Dependency-chain abuse via transitive action inclusion — consumer-side SHA pinning is insufficient when the pinned action itself references a mutable tag.",
247
+ "ISO-27001-2022-A.8.30": "Outsourced-development trust does not extend to the maintainers of an action's internal dependencies."
248
+ },
249
+ "atlas_refs": [],
250
+ "attack_refs": [
251
+ "T1195.001",
252
+ "T1552"
253
+ ],
254
+ "rwep_score": 72,
255
+ "rwep_factors": {
256
+ "cisa_kev": 25,
257
+ "poc_available": 20,
258
+ "ai_factor": 0,
259
+ "active_exploitation": 20,
260
+ "blast_radius": 22,
261
+ "patch_available": -15,
262
+ "live_patch_available": 0,
263
+ "reboot_required": 0
264
+ },
265
+ "rwep_notes": "Critical (RWEP 72). KEV-listed (25) + confirmed exploitation (20) + live malicious artifact as PoC (20) + broad transitive blast radius (22; five downstream actions, defeated consumer SHA pinning), minus patch_available (15). Σ factors === rwep_score.",
266
+ "epss_score": 0.34556,
267
+ "epss_date": "2026-05-27",
268
+ "epss_note": "FIRST EPSS 0.34556 (97.07th percentile) as of 2026-05-27.",
269
+ "epss_source": "https://api.first.org/data/v1/epss?cve=CVE-2025-30154",
270
+ "iocs": {
271
+ "behavioral": [
272
+ "GitHub Actions workflow logs containing base64-encoded secret blobs after a step running any reviewdog action.",
273
+ "reviewdog/action-setup or a dependent reviewdog action referenced during 2025-03-11 18:42-20:31 UTC.",
274
+ "A consumer that SHA-pinned an outer reviewdog action but still received malicious code (signature of the transitive-tag compromise)."
275
+ ],
276
+ "_ioc_source_note": "Anchored to NVD CVE-2025-30154, CISA KEV, the reviewdog GHSA-qmg3-hpqr-gqvc, and the Wiz analysis."
277
+ },
278
+ "source_verified": "2026-05-28",
279
+ "verification_sources": [
280
+ "https://nvd.nist.gov/vuln/detail/CVE-2025-30154",
281
+ "https://www.cisa.gov/known-exploited-vulnerabilities-catalog",
282
+ "https://github.com/reviewdog/reviewdog/security/advisories/GHSA-qmg3-hpqr-gqvc",
283
+ "https://www.wiz.io/blog/new-github-action-supply-chain-attack-reviewdog-action-setup"
284
+ ],
285
+ "vendor_advisories": [
286
+ {
287
+ "vendor": "GitHub Security Advisory",
288
+ "advisory_id": "GHSA-qmg3-hpqr-gqvc",
289
+ "url": "https://github.com/reviewdog/reviewdog/security/advisories/GHSA-qmg3-hpqr-gqvc",
290
+ "severity": "high",
291
+ "published_date": "2025-03-19"
292
+ },
293
+ {
294
+ "vendor": "NVD",
295
+ "advisory_id": "CVE-2025-30154",
296
+ "url": "https://nvd.nist.gov/vuln/detail/CVE-2025-30154",
297
+ "severity": "high",
298
+ "published_date": "2025-03-19"
299
+ }
300
+ ],
301
+ "last_updated": "2026-05-28",
302
+ "discovery_attribution_note": "Manually curated from NVD CVE-2025-30154 (CWE-506, CVSS 8.6) + CISA KEV (added 2025-03-24) + reviewdog GHSA-qmg3-hpqr-gqvc + Wiz analysis. The reviewdog/action-setup compromise of 2025-03-11; assessed as the upstream pivot of the tj-actions/changed-files compromise (CVE-2025-30066). Shares the CI/CD supply-chain control surface with that entry and the xz-utils backdoor (CVE-2024-3094).",
303
+ "_auto_imported": false,
304
+ "_intake_method": "manual-verified-curation",
305
+ "_kev_short_description": "reviewdog/action-setup@v1 (and five reviewdog actions that include it transitively) was trojaned (CWE-506) to dump secrets to workflow logs; pin actions to commit SHAs and rotate exposed secrets."
306
+ },
307
+ "CVE-2026-48027": {
308
+ "name": "Nx Console IDE Extension Supply-Chain Compromise (malicious marketplace version)",
309
+ "type": "supply-chain-compromise",
310
+ "cvss_score": 9.8,
311
+ "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
312
+ "cvss_v4_score": 9.3,
313
+ "cvss_v4_vector": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N",
314
+ "cvss_score_note": "NVD CVSS 3.1 base 9.8 (nvd@nist.gov). GitHub (CNA) scored CVSS 4.0 base 9.3. The 3.1 vector is the catalog-primary; both recorded.",
315
+ "cwe_refs": [
316
+ "CWE-506"
317
+ ],
318
+ "cisa_kev": true,
319
+ "cisa_kev_date": "2026-05-27",
320
+ "poc_available": true,
321
+ "poc_description": "The malicious extension is the live exploit. On 2026-05-19 a trojaned Nx Console 18.95.0 was published to the Visual Studio Marketplace (live 12:30-12:48 UTC, ~18 minutes) and OpenVSX (live 12:33-13:09 UTC, ~36 minutes). On install/activation it fetched an obfuscated second-stage payload that harvested credentials from multiple sources on the developer host. Documented by StepSecurity and the nrwl/nx-console GHSA.",
322
+ "ai_discovered": false,
323
+ "ai_discovery_source": "unknown",
324
+ "ai_discovery_notes": "No AI involvement in discovery is documented.",
325
+ "ai_assisted_weaponization": false,
326
+ "ai_assisted_notes": "AI-CLI abuse is not asserted for this specific extension compromise. Context: the Nx ecosystem was previously hit by the August 2025 's1ngularity' npm-package compromise, whose payload notably weaponized installed AI CLI assistants to enumerate secrets — a distinct incident; this entry is scoped to the documented facts of CVE-2026-48027.",
327
+ "active_exploitation": "confirmed",
328
+ "active_exploitation_notes": "CISA added to KEV 2026-05-27. The malicious version was live in two marketplaces during the documented windows on 2026-05-19; auto-update of the widely-installed extension drove exposure within the windows.",
329
+ "affected": "Nx Console 18.95.0 (the malicious version published 2026-05-19; live ~18 min on Visual Studio Marketplace and ~36 min on OpenVSX).",
330
+ "affected_versions": [
331
+ "Nx Console 18.95.0 (malicious marketplace publication; removed shortly after)"
332
+ ],
333
+ "vector": "Trojanized IDE-extension marketplace publication. A malicious 18.95.0 build was pushed to the VS Code Marketplace and OpenVSX; installing or auto-updating to it ran an obfuscated credential-harvesting payload with the developer's local privileges.",
334
+ "complexity": "low",
335
+ "complexity_notes": "Install or auto-update of the extension during the publication window was sufficient; no additional interaction required.",
336
+ "patch_available": true,
337
+ "patch_required_reboot": false,
338
+ "live_patch_available": false,
339
+ "live_patch_tools": [],
340
+ "vendor_update_paths": [
341
+ "Upgrade Nx Console to 18.100.0 (or later); 18.100.0 is confirmed clean",
342
+ "If 18.95.0 was installed on 2026-05-19, treat the host as compromised: rotate all developer credentials (Git/npm tokens, SSH keys, cloud keys, crypto wallets) and review for exfiltration",
343
+ "Disable IDE-extension auto-update for security-critical hosts and verify publisher/version before updating"
344
+ ],
345
+ "framework_control_gaps": {
346
+ "NIST-800-53-SR-11": "Component-authenticity verification does not extend to IDE marketplace extensions; VS Code/OpenVSX extensions carry no consumer-verifiable publisher signature an SR-11 process can gate on.",
347
+ "NIST-800-218-SSDF-PW.4": "Trusted-component reuse assumes the marketplace artifact matches the reviewed source; a malicious version published under the legitimate publisher identity defeats that assumption.",
348
+ "ISO-27001-2022-A.8.30": "Outsourced-development controls do not address developer-endpoint IDE extensions installed outside any procurement or vetting process.",
349
+ "ISO-27001-2022-A.8.8": "Technical-vulnerability management for developer endpoints rarely inventories IDE extensions or their auto-update behavior as a managed software surface.",
350
+ "OWASP-CICD-SEC-3": "Dependency-chain abuse extends to the developer IDE: a compromised extension harvests the same credentials the CI pipeline protects, upstream of any pipeline control."
351
+ },
352
+ "atlas_refs": [],
353
+ "attack_refs": [
354
+ "T1195.001",
355
+ "T1552",
356
+ "T1567"
357
+ ],
358
+ "rwep_score": 74,
359
+ "rwep_factors": {
360
+ "cisa_kev": 25,
361
+ "poc_available": 20,
362
+ "ai_factor": 0,
363
+ "active_exploitation": 20,
364
+ "blast_radius": 24,
365
+ "patch_available": -15,
366
+ "live_patch_available": 0,
367
+ "reboot_required": 0
368
+ },
369
+ "rwep_notes": "Critical (RWEP 74). KEV-listed (25) + confirmed exploitation (20) + the live malicious extension as PoC (20) + broad blast radius (24; widely-installed IDE extension, multi-source credential harvesting on the developer host, narrowed by the short publication window), minus patch_available (15). Σ factors === rwep_score.",
370
+ "epss_score": null,
371
+ "epss_date": "2026-05-28",
372
+ "epss_note": "Not yet scored by FIRST EPSS as of 2026-05-28 (CVE published 2026-05-27); refresh on the next validate-cves --live run.",
373
+ "epss_source": "https://api.first.org/data/v1/epss?cve=CVE-2026-48027",
374
+ "iocs": {
375
+ "behavioral": [
376
+ "Nx Console version 18.95.0 present in a VS Code / OpenVSX installation.",
377
+ "An IDE extension process making outbound network calls to fetch a second-stage payload shortly after install/update on 2026-05-19.",
378
+ "Access to developer credential stores (Git config, ~/.npmrc, SSH keys, cloud credential files, wallet files) by the extension host process."
379
+ ],
380
+ "indicators": [
381
+ "Nx Console 18.95.0 installed during 2026-05-19 12:30-12:48 UTC (VS Marketplace) or 12:33-13:09 UTC (OpenVSX)."
382
+ ],
383
+ "_ioc_source_note": "Anchored to NVD CVE-2026-48027, CISA KEV, the nrwl/nx-console GHSA-c9j4-9m59-847w, and the StepSecurity analysis."
384
+ },
385
+ "source_verified": "2026-05-28",
386
+ "verification_sources": [
387
+ "https://nvd.nist.gov/vuln/detail/CVE-2026-48027",
388
+ "https://www.cisa.gov/known-exploited-vulnerabilities-catalog",
389
+ "https://github.com/nrwl/nx-console/security/advisories/GHSA-c9j4-9m59-847w",
390
+ "https://www.stepsecurity.io/blog/nx-console-vs-code-extension-compromised"
391
+ ],
392
+ "vendor_advisories": [
393
+ {
394
+ "vendor": "GitHub Security Advisory",
395
+ "advisory_id": "GHSA-c9j4-9m59-847w",
396
+ "url": "https://github.com/nrwl/nx-console/security/advisories/GHSA-c9j4-9m59-847w",
397
+ "severity": "critical",
398
+ "published_date": "2026-05-27"
399
+ },
400
+ {
401
+ "vendor": "NVD",
402
+ "advisory_id": "CVE-2026-48027",
403
+ "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-48027",
404
+ "severity": "critical",
405
+ "published_date": "2026-05-27"
406
+ }
407
+ ],
408
+ "last_updated": "2026-05-28",
409
+ "discovery_attribution_note": "Manually curated from NVD CVE-2026-48027 (CWE-506, CVSS 3.1 9.8 / CVSS 4.0 9.3) + CISA KEV (added 2026-05-27) + nrwl/nx-console GHSA-c9j4-9m59-847w + StepSecurity analysis. Trojanized Nx Console 18.95.0 published to the VS Code Marketplace and OpenVSX on 2026-05-19; clean at 18.100.0. Shares the developer-tooling supply-chain control surface with the tj-actions (CVE-2025-30066) and reviewdog (CVE-2025-30154) action compromises.",
410
+ "_auto_imported": false,
411
+ "_intake_method": "manual-verified-curation",
412
+ "_kev_short_description": "A malicious Nx Console 18.95.0 was published to the VS Code Marketplace / OpenVSX (CWE-506) and harvested developer credentials; upgrade to 18.100.0 and rotate credentials if the bad version was installed on 2026-05-19."
413
+ },
95
414
  "CVE-2025-53773": {
96
415
  "name": "GitHub Copilot / VS Code 'YOLO mode' Prompt Injection RCE",
97
416
  "type": "RCE-via-prompt-injection",
@@ -50,14 +50,14 @@
50
50
  "evidence_cves": [
51
51
  "CVE-2022-1471",
52
52
  "CVE-2024-3154",
53
+ "CVE-2025-10164",
53
54
  "CVE-2025-20393",
54
55
  "CVE-2025-54236",
55
56
  "CVE-2025-6558",
57
+ "CVE-2026-21858",
56
58
  "CVE-2026-32201",
57
59
  "CVE-2026-34197",
58
- "CVE-2026-6973",
59
- "CVE-2025-10164",
60
- "CVE-2026-21858"
60
+ "CVE-2026-6973"
61
61
  ],
62
62
  "framework_controls_partially_addressing": [
63
63
  "NIST-800-53-SI-10",
@@ -104,6 +104,7 @@
104
104
  "CVE-2024-1561",
105
105
  "CVE-2024-1708",
106
106
  "CVE-2024-24591",
107
+ "CVE-2024-31462",
107
108
  "CVE-2024-37032",
108
109
  "CVE-2024-39722",
109
110
  "CVE-2024-57728",
@@ -111,14 +112,13 @@
111
112
  "CVE-2025-2749",
112
113
  "CVE-2025-27920",
113
114
  "CVE-2025-4632",
115
+ "CVE-2025-51480",
114
116
  "CVE-2025-6218",
115
117
  "CVE-2025-67818",
116
118
  "CVE-2025-8110",
117
- "CVE-2026-25592",
118
- "CVE-2026-34926",
119
119
  "CVE-2026-22218",
120
- "CVE-2025-51480",
121
- "CVE-2024-31462"
120
+ "CVE-2026-25592",
121
+ "CVE-2026-34926"
122
122
  ],
123
123
  "framework_controls_partially_addressing": [
124
124
  "NIST-800-53-AC-3",
@@ -155,6 +155,7 @@
155
155
  "CVE-2016-10033",
156
156
  "CVE-2020-25079",
157
157
  "CVE-2023-33538",
158
+ "CVE-2024-12450",
158
159
  "CVE-2024-5565",
159
160
  "CVE-2025-10035",
160
161
  "CVE-2025-29635",
@@ -169,8 +170,7 @@
169
170
  "CVE-2026-30617",
170
171
  "CVE-2026-30624",
171
172
  "CVE-2026-30625",
172
- "MAL-2026-3083",
173
- "CVE-2024-12450"
173
+ "MAL-2026-3083"
174
174
  ],
175
175
  "framework_controls_partially_addressing": [
176
176
  "NIST-800-53-SI-10",
@@ -421,15 +421,15 @@
421
421
  "CVE-2026-1281",
422
422
  "CVE-2026-1340",
423
423
  "CVE-2026-20045",
424
+ "CVE-2026-21877",
424
425
  "CVE-2026-25592",
425
426
  "CVE-2026-30615",
426
427
  "CVE-2026-33017",
427
428
  "CVE-2026-34197",
428
429
  "CVE-2026-45829",
429
- "CVE-2026-6973",
430
- "MAL-2026-3083",
431
430
  "CVE-2026-5760",
432
- "CVE-2026-21877"
431
+ "CVE-2026-6973",
432
+ "MAL-2026-3083"
433
433
  ],
434
434
  "framework_controls_partially_addressing": [
435
435
  "NIST-800-53-SI-10",
@@ -1361,6 +1361,7 @@
1361
1361
  "CVE-2024-50050",
1362
1362
  "CVE-2024-8069",
1363
1363
  "CVE-2025-10035",
1364
+ "CVE-2025-10164",
1364
1365
  "CVE-2025-23254",
1365
1366
  "CVE-2025-24016",
1366
1367
  "CVE-2025-26399",
@@ -1377,14 +1378,13 @@
1377
1378
  "CVE-2025-59287",
1378
1379
  "CVE-2025-60455",
1379
1380
  "CVE-2025-68664",
1381
+ "CVE-2025-68665",
1380
1382
  "CVE-2025-8747",
1381
1383
  "CVE-2026-20131",
1382
1384
  "CVE-2026-20963",
1383
- "CVE-2026-31229",
1384
- "CVE-2025-68665",
1385
- "CVE-2025-10164",
1386
1385
  "CVE-2026-3059",
1387
- "CVE-2026-3060"
1386
+ "CVE-2026-3060",
1387
+ "CVE-2026-31229"
1388
1388
  ],
1389
1389
  "framework_controls_partially_addressing": [
1390
1390
  "NIST-800-53-SI-10",
@@ -1414,10 +1414,13 @@
1414
1414
  "skills_referencing": [],
1415
1415
  "evidence_cves": [
1416
1416
  "CVE-2024-3094",
1417
+ "CVE-2025-30066",
1418
+ "CVE-2025-30154",
1417
1419
  "CVE-2025-54313",
1418
1420
  "CVE-2025-59374",
1419
1421
  "CVE-2026-33634",
1420
1422
  "CVE-2026-45321",
1423
+ "CVE-2026-48027",
1421
1424
  "MAL-2026-3083",
1422
1425
  "MAL-2026-NODE-IPC-STEALER",
1423
1426
  "MAL-2026-SHAI-HULUD-OSS",
@@ -1895,11 +1898,11 @@
1895
1898
  "CVE-2023-43654",
1896
1899
  "CVE-2023-48022",
1897
1900
  "CVE-2023-51449",
1901
+ "CVE-2024-12450",
1898
1902
  "CVE-2024-6587",
1899
1903
  "CVE-2025-25297",
1900
1904
  "CVE-2025-56520",
1901
1905
  "CVE-2025-61884",
1902
- "CVE-2024-12450",
1903
1906
  "CVE-2026-22219"
1904
1907
  ],
1905
1908
  "framework_controls_partially_addressing": [
@@ -2202,9 +2205,9 @@
2202
2205
  "BUG-2026-NIGHTMARE-ECLIPSE-UNDEFEND",
2203
2206
  "CVE-2025-3466",
2204
2207
  "CVE-2025-40536",
2208
+ "CVE-2025-68668",
2205
2209
  "CVE-2026-21510",
2206
- "CVE-2026-21513",
2207
- "CVE-2025-68668"
2210
+ "CVE-2026-21513"
2208
2211
  ],
2209
2212
  "last_verified": "2026-05-18",
2210
2213
  "notes": "Added v0.13.17 to back the UnDefend Defender update-disruption entry. CWE-693 is the canonical parent for failures-of-protection-mechanism — Defender continues running but its update mechanism has been corrupted, so the AV protection-mechanism fails silently while the host still passes 'is Defender running?' health checks."