@blamejs/exceptd-skills 0.13.119 → 0.13.121

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.
@@ -39541,5 +39541,213 @@
39541
39541
  "_auto_imported": false,
39542
39542
  "_intake_method": "manual-verified-curation",
39543
39543
  "_kev_short_description": "Chainlit /project/element (SQLAlchemy backend) fetches a caller-supplied url server-side and stores the response, letting an authenticated client reach internal services (CWE-918 SSRF); fixed in 2.9.4."
39544
+ },
39545
+ "CVE-2025-68665": {
39546
+ "name": "LangChain JS toJSON() 'lc'-Key Serialization Injection",
39547
+ "type": "deserialization-injection",
39548
+ "cvss_score": 8.6,
39549
+ "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N",
39550
+ "cvss_note": "GitHub (CNA, security-advisories@github.com) CVSS v3.1 base 8.6 (scope-changed, S:C); NVD v3.1 base 9.1. LangChain JS's toJSON() (and JSON.stringify of LangChain objects) did not escape free-form kwargs data containing the internal 'lc' marker key, so attacker-controlled data carrying that key structure is treated as a legitimate serialized LangChain object on deserialization rather than plain user data (CWE-502). This is the LangChain-JS sibling of the Python-side CVE-2025-68664 dumps()/dumpd() injection.",
39551
+ "cisa_kev": false,
39552
+ "poc_available": true,
39553
+ "poc_description": "Documented in the LangChain JS advisory: free-form data with an 'lc' key passed through toJSON()/JSON.stringify is rehydrated as a framework object on load.",
39554
+ "ai_discovered": false,
39555
+ "ai_discovery_source": "human_researcher",
39556
+ "ai_discovery_notes": "Disclosed via the LangChain JS GitHub Security Advisory and enriched by NVD. The abused surface is LangChain JS, a widely used framework for building LLM-powered applications.",
39557
+ "ai_assisted_weaponization": false,
39558
+ "ai_assisted_notes": "No AI-assisted weaponization evidence for the JS variant specifically; the flaw is unescaped framework-marker serialization in an LLM framework. (The Python sibling CVE-2025-68664 carries suspected-exploitation + weaponization signals; this JS entry is scored conservatively per the available evidence.)",
39559
+ "active_exploitation": "none",
39560
+ "active_exploitation_notes": "GitHub advisory disclosure with a coordinated fix; no confirmed in-the-wild exploitation reported for the JS variant as of curation, and the CVE is not in CISA KEV (verified against the live catalog).",
39561
+ "affected": "LangChain JS: @langchain/core before 0.3.80 and before 1.1.8; langchain before 0.3.37 and before 1.2.3.",
39562
+ "affected_versions": [
39563
+ "@langchain/core < 0.3.80",
39564
+ "@langchain/core < 1.1.8",
39565
+ "langchain < 0.3.37",
39566
+ "langchain < 1.2.3"
39567
+ ],
39568
+ "vector": "LangChain JS's toJSON() method (and downstream JSON.stringify of LangChain objects) did not escape free-form kwargs data containing the 'lc' marker key that LangChain uses internally to mark serialized objects, so user-controlled data carrying that structure is rehydrated as a legitimate LangChain object during deserialization instead of being kept as plain data (CWE-502 deserialization of untrusted data).",
39569
+ "complexity": "low",
39570
+ "complexity_notes": "GitHub v3.1 AV:N / AC:L / PR:N / UI:N, scope-changed (S:C).",
39571
+ "patch_available": true,
39572
+ "patch_required_reboot": false,
39573
+ "live_patch_available": false,
39574
+ "live_patch_tools": [],
39575
+ "live_patch_notes": "Remediation is upgrading @langchain/core to 0.3.80 or 1.1.8+ and langchain to 0.3.37 or 1.2.3+; redeploy.",
39576
+ "vendor_update_paths": [
39577
+ "Upgrade @langchain/core to 0.3.80 / 1.1.8 (or later) and langchain to 0.3.37 / 1.2.3 (or later). Never round-trip untrusted free-form data through framework serializers that interpret internal marker keys; escape or reject the 'lc' marker in user-derived fields."
39578
+ ],
39579
+ "framework_control_gaps": {
39580
+ "NIST-AI-RMF-MEASURE-2.7": "Serialization round-trip of untrusted free-form data through a framework marker is not in the published AI-risk taxonomy.",
39581
+ "EU-AI-Act-Art15": "Robustness control does not enumerate the serialization-deserialization chain in an LLM framework as an attack surface.",
39582
+ "ISO-IEC-42001-AIMS-A.6.2.5": "Lifecycle controls do not include trust-zone separation on LLM-framework (de)serialization.",
39583
+ "OWASP-LLM-Top-10-LLM01": "Prompt Injection class — untrusted content reaching the serializer is the upstream trigger.",
39584
+ "OWASP-LLM-Top-10-LLM02": "Insecure output handling — applies directly to rehydrating attacker data as a framework object."
39585
+ },
39586
+ "atlas_refs": [
39587
+ "AML.T0051",
39588
+ "AML.T0040"
39589
+ ],
39590
+ "attack_refs": [
39591
+ "T1059",
39592
+ "T1552"
39593
+ ],
39594
+ "rwep_score": 25,
39595
+ "rwep_factors": {
39596
+ "cisa_kev": 0,
39597
+ "poc_available": 20,
39598
+ "ai_factor": 0,
39599
+ "active_exploitation": 0,
39600
+ "blast_radius": 20,
39601
+ "patch_available": -15,
39602
+ "live_patch_available": 0,
39603
+ "reboot_required": 0
39604
+ },
39605
+ "rwep_notes": "Moderate-high (RWEP 25, \"patch within 30 days\" band per lib/scoring.js). Not KEV (verified), no confirmed in-the-wild exploitation for the JS variant, patched (Hard Rule #3): poc_available=20 + blast_radius=20 (unauthenticated scope-changed deserialization injection in a widely used LLM framework), minus patch_available 15. Scored below its Python sibling CVE-2025-68664 (RWEP 52), which additionally carries suspected-exploitation + weaponization signals.",
39606
+ "epss_score": 0.00066,
39607
+ "epss_date": "2026-05-26",
39608
+ "epss_note": "FIRST EPSS 0.00066 (20th percentile) as of 2026-05-26.",
39609
+ "epss_source": "https://api.first.org/data/v1/epss?cve=CVE-2025-68665",
39610
+ "cwe_refs": [
39611
+ "CWE-502"
39612
+ ],
39613
+ "iocs": {
39614
+ "behavioral": [
39615
+ "LangChain JS applications round-tripping user-controlled free-form data through toJSON() / JSON.stringify where the data contains an 'lc' key.",
39616
+ "Deserialized LangChain objects instantiated from fields that should have been plain user data.",
39617
+ "@langchain/core < 0.3.80 / < 1.1.8 or langchain < 0.3.37 / < 1.2.3 handling untrusted serialized input — the exposed precondition."
39618
+ ],
39619
+ "_ioc_source_note": "Behavioral signatures anchored to the LangChain JS GitHub Security Advisory and NVD CVE-2025-68665 (CWE-502)."
39620
+ },
39621
+ "source_verified": "2026-05-26",
39622
+ "verification_sources": [
39623
+ "https://nvd.nist.gov/vuln/detail/CVE-2025-68665",
39624
+ "https://github.com/langchain-ai/langchainjs/releases/tag/%40langchain%2Fcore%401.1.8"
39625
+ ],
39626
+ "vendor_advisories": [
39627
+ {
39628
+ "vendor": "GitHub Security Advisory",
39629
+ "advisory_id": "CVE-2025-68665",
39630
+ "url": "https://nvd.nist.gov/vuln/detail/CVE-2025-68665",
39631
+ "severity": "high",
39632
+ "published_date": "2025-12-23"
39633
+ },
39634
+ {
39635
+ "vendor": "NVD",
39636
+ "advisory_id": "CVE-2025-68665",
39637
+ "url": "https://nvd.nist.gov/vuln/detail/CVE-2025-68665",
39638
+ "severity": "critical",
39639
+ "published_date": "2025-12-23"
39640
+ }
39641
+ ],
39642
+ "last_updated": "2026-05-26",
39643
+ "discovery_attribution_note": "Manually curated from NVD CVE-2025-68665 (CWE-502) + the LangChain JS GitHub Security Advisory (CNA, CVSS v3.1 8.6). LangChain-JS toJSON() serialization injection — the JavaScript sibling of the Python-side CVE-2025-68664; reuses the LLM-output deserialization trust-zone control NEW-CTRL-064 + AI-tool input-sanitization NEW-CTRL-005.",
39644
+ "_auto_imported": false,
39645
+ "_intake_method": "manual-verified-curation",
39646
+ "_kev_short_description": "LangChain JS toJSON() did not escape the internal 'lc' marker in free-form data, so attacker data is rehydrated as a framework object on deserialization (CWE-502); fixed in @langchain/core 1.1.8 / langchain 1.2.3."
39647
+ },
39648
+ "CVE-2025-51480": {
39649
+ "name": "ONNX save_external_data Path Traversal Arbitrary File Overwrite",
39650
+ "type": "Path Traversal",
39651
+ "cvss_score": 8.8,
39652
+ "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H",
39653
+ "cvss_note": "NVD CVSS v3.1 base 8.8 (HIGH). ONNX's onnx.external_data_helper.save_external_data does not validate the external_data 'location' field, so loading/saving a crafted ONNX model writes to an attacker-chosen path outside the intended directory (CWE-22 path traversal), overwriting arbitrary files - which in a model-load context can lead to code execution. Requires the victim to process the malicious model (UI:R).",
39654
+ "cisa_kev": false,
39655
+ "poc_available": true,
39656
+ "poc_description": "Documented in the Gecko Security writeup (https://www.gecko.security/blog/cve-2025-51480) and the advisory (GHSA-6rq9-53c3-f7vj): a crafted external_data.location with ../ traversal causes save_external_data to write outside the model directory.",
39657
+ "ai_discovered": false,
39658
+ "ai_discovery_source": "human_researcher",
39659
+ "ai_discovery_notes": "Disclosed via GitHub Security Advisory GHSA-6rq9-53c3-f7vj + Gecko Security, enriched by NVD. The abused surface is ONNX, the de-facto open model-interchange format used across the ML ecosystem.",
39660
+ "ai_assisted_weaponization": false,
39661
+ "ai_assisted_notes": "No AI-assisted weaponization; the flaw is missing path validation in a model-serialization helper - exploited by delivering a crafted model (a model-supply-chain trigger).",
39662
+ "active_exploitation": "none",
39663
+ "active_exploitation_notes": "Advisory disclosure with a coordinated fix; no confirmed in-the-wild exploitation reported as of curation, and the CVE is not in CISA KEV (verified against the live catalog).",
39664
+ "affected": "ONNX 1.17.0 (onnx.external_data_helper.save_external_data).",
39665
+ "affected_versions": [
39666
+ "ONNX <= 1.17.0"
39667
+ ],
39668
+ "vector": "ONNX's onnx.external_data_helper.save_external_data uses the attacker-controllable external_data 'location' field without canonicalizing or confining it to the model directory, so processing a crafted ONNX model writes external-data tensors to an arbitrary filesystem path (../ traversal or absolute), overwriting arbitrary files (CWE-22) - in a model-load pipeline this can escalate to code execution by overwriting executable or config files.",
39669
+ "complexity": "low",
39670
+ "complexity_notes": "NVD AV:N / AC:L / PR:N / UI:R - the victim must load or re-save the crafted model.",
39671
+ "patch_available": true,
39672
+ "patch_required_reboot": false,
39673
+ "live_patch_available": false,
39674
+ "live_patch_tools": [],
39675
+ "live_patch_notes": "Remediation is upgrading to ONNX 1.18.0 or later (fixes in PRs #6959 / #7040); redeploy the environment.",
39676
+ "vendor_update_paths": [
39677
+ "Upgrade ONNX to 1.18.0 or later. Canonicalize and confine the external_data 'location' to the model directory before writing; reject absolute paths and ../ traversal. Treat third-party ONNX models as untrusted input and load them in a sandbox."
39678
+ ],
39679
+ "framework_control_gaps": {
39680
+ "NIST-800-53-SI-10": "No input validation is applied to the external_data location before the model serializer writes to it (CWE-22).",
39681
+ "NIST-800-53-SR-3": "Supply-chain controls do not treat a third-party ONNX model as untrusted input whose serialized paths can escape the model directory.",
39682
+ "ISO-27001-2022-A.8.28": "Secure coding does not require canonicalization + confinement of model-supplied file paths in the serialization helper.",
39683
+ "NIS2-Art21-network-security": "Article 21 measures do not model an ML model-interchange library as a path-traversal / supply-chain surface.",
39684
+ "DORA-Art-9": "ICT protection measures do not model arbitrary file overwrite via a crafted ML model as an ICT-risk event.",
39685
+ "UK-CAF-B4": "System security objective has no objective for path canonicalization in ML model-serialization libraries.",
39686
+ "AU-ISM-1546": "Patch-application control does not single out ML model-format libraries.",
39687
+ "ALL-AI-PIPELINE-INTEGRITY": "No framework treats an ML model file's embedded paths as an integrity boundary requiring canonicalization on load/save."
39688
+ },
39689
+ "atlas_refs": [
39690
+ "AML.T0010",
39691
+ "AML.T0011",
39692
+ "AML.T0011.000"
39693
+ ],
39694
+ "attack_refs": [
39695
+ "T1204",
39696
+ "T1059",
39697
+ "T1195.002"
39698
+ ],
39699
+ "rwep_score": 23,
39700
+ "rwep_factors": {
39701
+ "cisa_kev": 0,
39702
+ "poc_available": 20,
39703
+ "ai_factor": 0,
39704
+ "active_exploitation": 0,
39705
+ "blast_radius": 18,
39706
+ "patch_available": -15,
39707
+ "live_patch_available": 0,
39708
+ "reboot_required": 0
39709
+ },
39710
+ "rwep_notes": "Moderate-high (RWEP 23, \"patch within 30 days\" band per lib/scoring.js). Not KEV (verified), no confirmed in-the-wild exploitation, patched at 1.18.0 (Hard Rule #3): poc_available=20 + blast_radius=18 (arbitrary file overwrite via a crafted model in the ubiquitous ONNX interchange format - broad reach, but gated on the victim processing the malicious model, UI:R), minus patch_available 15.",
39711
+ "epss_score": 0.00366,
39712
+ "epss_date": "2026-05-26",
39713
+ "epss_note": "FIRST EPSS 0.00366 (59th percentile) as of 2026-05-26.",
39714
+ "epss_source": "https://api.first.org/data/v1/epss?cve=CVE-2025-51480",
39715
+ "cwe_refs": [
39716
+ "CWE-22"
39717
+ ],
39718
+ "iocs": {
39719
+ "behavioral": [
39720
+ "ONNX models whose external_data 'location' field contains ../ traversal sequences or absolute filesystem paths.",
39721
+ "Files written outside the intended model directory during onnx load/save (save_external_data) of a third-party model.",
39722
+ "ONNX <= 1.17.0 processing untrusted third-party models - the exposed precondition."
39723
+ ],
39724
+ "_ioc_source_note": "Behavioral signatures anchored to GHSA-6rq9-53c3-f7vj, the Gecko Security writeup, and NVD CVE-2025-51480 (CWE-22)."
39725
+ },
39726
+ "source_verified": "2026-05-26",
39727
+ "verification_sources": [
39728
+ "https://nvd.nist.gov/vuln/detail/CVE-2025-51480",
39729
+ "https://github.com/advisories/GHSA-6rq9-53c3-f7vj"
39730
+ ],
39731
+ "vendor_advisories": [
39732
+ {
39733
+ "vendor": "GitHub Advisory Database",
39734
+ "advisory_id": "GHSA-6rq9-53c3-f7vj",
39735
+ "url": "https://github.com/advisories/GHSA-6rq9-53c3-f7vj",
39736
+ "severity": "high",
39737
+ "published_date": "2025-07-22"
39738
+ },
39739
+ {
39740
+ "vendor": "NVD",
39741
+ "advisory_id": "CVE-2025-51480",
39742
+ "url": "https://nvd.nist.gov/vuln/detail/CVE-2025-51480",
39743
+ "severity": "high",
39744
+ "published_date": "2025-07-22"
39745
+ }
39746
+ ],
39747
+ "last_updated": "2026-05-26",
39748
+ "discovery_attribution_note": "Manually curated from NVD CVE-2025-51480 (CWE-22) + GitHub Security Advisory GHSA-6rq9-53c3-f7vj + the Gecko Security writeup. ONNX model-interchange-format path traversal (arbitrary file overwrite on model load/save); reuses the AI-runtime-API path-traversal validation control NEW-CTRL-094 (shared with the AnythingLLM upload traversal and Chainlit element file read).",
39749
+ "_auto_imported": false,
39750
+ "_intake_method": "manual-verified-curation",
39751
+ "_kev_short_description": "ONNX save_external_data does not validate the external_data location, so a crafted model overwrites arbitrary files via path traversal on load/save (CWE-22); fixed in 1.18.0."
39544
39752
  }
39545
39753
  }
@@ -114,7 +114,8 @@
114
114
  "CVE-2025-8110",
115
115
  "CVE-2026-25592",
116
116
  "CVE-2026-34926",
117
- "CVE-2026-22218"
117
+ "CVE-2026-22218",
118
+ "CVE-2025-51480"
118
119
  ],
119
120
  "framework_controls_partially_addressing": [
120
121
  "NIST-800-53-AC-3",
@@ -1373,7 +1374,8 @@
1373
1374
  "CVE-2025-8747",
1374
1375
  "CVE-2026-20131",
1375
1376
  "CVE-2026-20963",
1376
- "CVE-2026-31229"
1377
+ "CVE-2026-31229",
1378
+ "CVE-2025-68665"
1377
1379
  ],
1378
1380
  "framework_controls_partially_addressing": [
1379
1381
  "NIST-800-53-SI-10",
@@ -120,7 +120,8 @@
120
120
  "CVE-2024-12450",
121
121
  "CVE-2025-69286",
122
122
  "CVE-2026-22218",
123
- "CVE-2026-22219"
123
+ "CVE-2026-22219",
124
+ "CVE-2025-51480"
124
125
  ],
125
126
  "atlas_refs": [
126
127
  "AML.T0018",
@@ -1315,7 +1316,8 @@
1315
1316
  "CVE-2026-31229",
1316
1317
  "CVE-2026-31230",
1317
1318
  "CVE-2026-33017",
1318
- "CVE-2026-22218"
1319
+ "CVE-2026-22218",
1320
+ "CVE-2025-51480"
1319
1321
  ],
1320
1322
  "atlas_refs": [
1321
1323
  "AML.T0051",
@@ -2433,7 +2435,8 @@
2433
2435
  "CVE-2026-9082",
2434
2436
  "CVE-2024-12450",
2435
2437
  "CVE-2026-22218",
2436
- "CVE-2026-22219"
2438
+ "CVE-2026-22219",
2439
+ "CVE-2025-51480"
2437
2440
  ],
2438
2441
  "atlas_refs": [
2439
2442
  "AML.T0053"
@@ -2923,7 +2926,8 @@
2923
2926
  "CVE-2024-3094",
2924
2927
  "CVE-2024-37052",
2925
2928
  "CVE-2024-37060",
2926
- "MAL-2026-SHAI-HULUD-OSS"
2929
+ "MAL-2026-SHAI-HULUD-OSS",
2930
+ "CVE-2025-51480"
2927
2931
  ],
2928
2932
  "atlas_refs": [
2929
2933
  "AML.T0010"
@@ -5217,7 +5221,8 @@
5217
5221
  "CVE-2024-12450",
5218
5222
  "CVE-2025-69286",
5219
5223
  "CVE-2026-22218",
5220
- "CVE-2026-22219"
5224
+ "CVE-2026-22219",
5225
+ "CVE-2025-51480"
5221
5226
  ],
5222
5227
  "atlas_refs": [],
5223
5228
  "attack_refs": [
@@ -5812,7 +5817,8 @@
5812
5817
  "MAL-2026-SHAI-HULUD-OSS",
5813
5818
  "CVE-2024-12450",
5814
5819
  "CVE-2026-22218",
5815
- "CVE-2026-22219"
5820
+ "CVE-2026-22219",
5821
+ "CVE-2025-51480"
5816
5822
  ],
5817
5823
  "atlas_refs": [],
5818
5824
  "attack_refs": [
@@ -5939,7 +5945,8 @@
5939
5945
  "CVE-2024-12450",
5940
5946
  "CVE-2025-69286",
5941
5947
  "CVE-2026-22218",
5942
- "CVE-2026-22219"
5948
+ "CVE-2026-22219",
5949
+ "CVE-2025-51480"
5943
5950
  ],
5944
5951
  "atlas_refs": [],
5945
5952
  "attack_refs": [
@@ -6284,7 +6291,8 @@
6284
6291
  "CVE-2023-43472",
6285
6292
  "CVE-2025-55319",
6286
6293
  "CVE-2025-68664",
6287
- "CVE-2026-30623"
6294
+ "CVE-2026-30623",
6295
+ "CVE-2025-68665"
6288
6296
  ],
6289
6297
  "atlas_refs": [
6290
6298
  "AML.T0010",
@@ -6363,7 +6371,8 @@
6363
6371
  "CVE-2026-20182",
6364
6372
  "CVE-2024-12450",
6365
6373
  "CVE-2026-22218",
6366
- "CVE-2026-22219"
6374
+ "CVE-2026-22219",
6375
+ "CVE-2025-51480"
6367
6376
  ],
6368
6377
  "atlas_refs": [],
6369
6378
  "attack_refs": [
@@ -6591,7 +6600,8 @@
6591
6600
  "CVE-2025-68664",
6592
6601
  "CVE-2025-6965",
6593
6602
  "CVE-2026-22778",
6594
- "MAL-2025-AI-FOUND-FFMPEG-BIGSLEEP"
6603
+ "MAL-2025-AI-FOUND-FFMPEG-BIGSLEEP",
6604
+ "CVE-2025-68665"
6595
6605
  ],
6596
6606
  "theater_test": {
6597
6607
  "claim": "We are compliant with Art-15 (Accuracy, robustness, and cybersecurity of high-risk AI systems) because we follow the documented requirement: Article 15 — high-risk AI systems must be designed and developed so as to achieve an appropriate level of accuracy, robustness, and cybersecurity throughout their lifecycle. Anchored on the assumption",
@@ -7082,7 +7092,8 @@
7082
7092
  "evidence_cves": [
7083
7093
  "CVE-2025-10725",
7084
7094
  "CVE-2025-55319",
7085
- "CVE-2025-68664"
7095
+ "CVE-2025-68664",
7096
+ "CVE-2025-68665"
7086
7097
  ],
7087
7098
  "theater_test": {
7088
7099
  "claim": "We are compliant with Annex A.6.2.5 (AI system lifecycle — verification and validation) because we follow the documented requirement: Annex A.6.2.5 — verification and validation across the AI system lifecycle, ensuring intended behaviour is preserved across design, training, deployment, and operations. Anchored on lifecycle-stage ga",
@@ -7111,7 +7122,8 @@
7111
7122
  "opened_at": "2026-05-18",
7112
7123
  "evidence_cves": [
7113
7124
  "CVE-2025-55319",
7114
- "CVE-2025-68664"
7125
+ "CVE-2025-68664",
7126
+ "CVE-2025-68665"
7115
7127
  ],
7116
7128
  "theater_test": {
7117
7129
  "claim": "We are compliant with LLM01 (Prompt Injection (2023 edition)) because we follow the documented requirement: LLM01:2023 — preventing prompt injection where user-controlled input or third-party content overrides the developer's instructions to the LLM. Anchored on input-sanitisation, prompt-template hardening",
@@ -7139,7 +7151,8 @@
7139
7151
  "status": "open",
7140
7152
  "opened_at": "2026-05-18",
7141
7153
  "evidence_cves": [
7142
- "CVE-2025-68664"
7154
+ "CVE-2025-68664",
7155
+ "CVE-2025-68665"
7143
7156
  ],
7144
7157
  "theater_test": {
7145
7158
  "claim": "We are compliant with LLM02 (Insecure Output Handling (2023 edition)) because we follow the documented requirement: LLM02:2023 — preventing downstream systems from blindly trusting LLM output where it can produce XSS, SSRF, privilege escalation, or remote code execution. Anchored on treating LLM output as untrusted",
@@ -17236,5 +17236,115 @@
17236
17236
  ],
17237
17237
  "_auto_imported": false,
17238
17238
  "_intake_method": "manual-verified-curation"
17239
+ },
17240
+ "CVE-2025-68665": {
17241
+ "name": "LangChain JS toJSON() 'lc'-Key Serialization Injection",
17242
+ "lesson_date": "2026-05-26",
17243
+ "attack_vector": {
17244
+ "description": "LangChain JS's toJSON() did not escape free-form data carrying the internal 'lc' marker key, so attacker-controlled data is rehydrated as a legitimate framework object on deserialization.",
17245
+ "privileges_required": "none (untrusted serialized input)",
17246
+ "complexity": "low",
17247
+ "ai_factor": "The abused surface is LangChain JS, an LLM-application framework. The lesson: LLM frameworks must treat (de)serialization of untrusted free-form data as a trust boundary and refuse to rehydrate framework-internal object markers from user-derived fields."
17248
+ },
17249
+ "framework_coverage": {
17250
+ "NIST-AI-RMF-MEASURE-2.7": {
17251
+ "covered": true,
17252
+ "adequate": false,
17253
+ "gap": "Serialization round-trip of untrusted data through a framework marker is not in the AI-risk taxonomy."
17254
+ },
17255
+ "OWASP-LLM-Top-10-LLM02": {
17256
+ "covered": true,
17257
+ "adequate": false,
17258
+ "gap": "Insecure output handling — rehydrating attacker data as a framework object."
17259
+ },
17260
+ "ALL-AI-PIPELINE-INTEGRITY": {
17261
+ "covered": false,
17262
+ "adequate": false,
17263
+ "gap": "No framework treats an LLM framework's (de)serialization of untrusted data as an integrity trust zone."
17264
+ }
17265
+ },
17266
+ "compliance_exposure_score": {
17267
+ "percent_audit_passing_orgs_still_exposed": 81,
17268
+ "basis": "LLM frameworks serialize free-form data through internal markers; trust-zone separation on (de)serialization is rarely audited.",
17269
+ "theater_pattern": "ai_supply_chain_trust"
17270
+ },
17271
+ "ai_discovered_zeroday": false,
17272
+ "ai_discovery_source": "human_researcher",
17273
+ "ai_assist_factor": "none",
17274
+ "new_control_requirements": [
17275
+ {
17276
+ "id": "NEW-CTRL-064",
17277
+ "name": "LLM-OUTPUT-DESERIALIZATION-TRUST-ZONE",
17278
+ "description": "LLM responses and untrusted free-form data must cross a serialisation trust boundary; frameworks must refuse to rehydrate framework-internal object markers (e.g. LangChain's 'lc' key) from user-derived fields.",
17279
+ "evidence": "CVE-2025-68665 — LangChain JS toJSON()/JSON.stringify did not escape the 'lc' marker in attacker-controlled free-form data.",
17280
+ "gap_closes": [
17281
+ "NIST-AI-RMF-MEASURE-2.7",
17282
+ "EU-AI-Act-Art15",
17283
+ "ISO-IEC-42001-AIMS-A.6.2.5",
17284
+ "OWASP-LLM-Top-10-LLM02"
17285
+ ]
17286
+ },
17287
+ {
17288
+ "id": "NEW-CTRL-005",
17289
+ "name": "AI-TOOL-INPUT-SANITIZATION",
17290
+ "description": "External-source content reaching the LLM / framework serializer must be treated as adversarial; pairs with NEW-CTRL-064 on the output side.",
17291
+ "evidence": "CVE-2025-68665 — untrusted free-form data is the trigger; the (de)serialization trust zone is the closure.",
17292
+ "gap_closes": [
17293
+ "OWASP-LLM-Top-10-LLM01"
17294
+ ]
17295
+ }
17296
+ ],
17297
+ "_auto_imported": false,
17298
+ "_intake_method": "manual-verified-curation"
17299
+ },
17300
+ "CVE-2025-51480": {
17301
+ "name": "ONNX save_external_data Path Traversal Arbitrary File Overwrite",
17302
+ "lesson_date": "2026-05-26",
17303
+ "attack_vector": {
17304
+ "description": "ONNX's save_external_data writes external-data tensors to the attacker-controllable external_data 'location' without confining it to the model directory, so a crafted model overwrites arbitrary files on load/save.",
17305
+ "privileges_required": "none, but requires the victim to process the malicious model (UI:R)",
17306
+ "complexity": "low",
17307
+ "ai_factor": "The abused surface is ONNX, the de-facto ML model-interchange format. The lesson: a model file's embedded paths are untrusted input - model-serialization libraries must canonicalize and confine any file path a model supplies before touching the filesystem, and third-party models must be loaded as untrusted."
17308
+ },
17309
+ "framework_coverage": {
17310
+ "NIST-800-53-SI-10": {
17311
+ "covered": true,
17312
+ "adequate": false,
17313
+ "gap": "No input validation is applied to the model-supplied external_data location before write."
17314
+ },
17315
+ "NIST-800-53-SR-3": {
17316
+ "covered": true,
17317
+ "adequate": false,
17318
+ "gap": "Supply-chain controls do not treat a third-party model's embedded paths as untrusted."
17319
+ },
17320
+ "ALL-AI-PIPELINE-INTEGRITY": {
17321
+ "covered": false,
17322
+ "adequate": false,
17323
+ "gap": "No framework treats an ML model file's embedded paths as an integrity boundary requiring canonicalization."
17324
+ }
17325
+ },
17326
+ "compliance_exposure_score": {
17327
+ "percent_audit_passing_orgs_still_exposed": 80,
17328
+ "basis": "ML pipelines load third-party ONNX models on trusted-input assumptions; model-embedded file paths are rarely canonicalized before write.",
17329
+ "theater_pattern": "ai_model_supply_chain_path_traversal"
17330
+ },
17331
+ "ai_discovered_zeroday": false,
17332
+ "ai_discovery_source": "human_researcher",
17333
+ "ai_assist_factor": "none",
17334
+ "new_control_requirements": [
17335
+ {
17336
+ "id": "NEW-CTRL-094",
17337
+ "name": "AI-RUNTIME-API-PATH-TRAVERSAL-VALIDATION",
17338
+ "description": "An AI application or model library's file/path-bearing inputs (upload filenames, model digests, model-embedded external-data locations, element/document paths, API route parameters) must be canonicalized and confined to an allowlisted base directory before any filesystem read or write - including non-ASCII / encoding transforms - and third-party models must be loaded as untrusted. The distinguishing test: process a model/file reference whose path decodes to ../ traversal or an absolute path on a staging instance and confirm it is rejected, not read or written outside the intended directory.",
17339
+ "evidence": "https://github.com/advisories/GHSA-6rq9-53c3-f7vj",
17340
+ "gap_closes": [
17341
+ "NIST-800-53-SI-2",
17342
+ "NIST-800-53-SI-10",
17343
+ "ALL-AI-PIPELINE-INTEGRITY"
17344
+ ]
17345
+ }
17346
+ ],
17347
+ "_auto_imported": false,
17348
+ "_intake_method": "manual-verified-curation"
17239
17349
  }
17240
17350
  }