@blamejs/exceptd-skills 0.13.121 → 0.13.122
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/data/_indexes/_meta.json +9 -9
- package/data/_indexes/activity-feed.json +2 -2
- package/data/_indexes/catalog-summaries.json +2 -2
- package/data/_indexes/chains.json +799 -1
- package/data/atlas-ttps.json +6 -2
- package/data/attack-techniques.json +8 -3
- package/data/cve-catalog.json +220 -2
- package/data/cwe-catalog.json +6 -3
- package/data/framework-control-gaps.json +28 -10
- package/data/zeroday-lessons.json +100 -0
- package/manifest.json +44 -44
- package/package.json +1 -1
- package/sbom.cdx.json +24 -24
package/data/atlas-ttps.json
CHANGED
|
@@ -169,7 +169,9 @@
|
|
|
169
169
|
"MAL-2026-RUBYGEMS-BUFFERZONECORP-SLEEPER",
|
|
170
170
|
"MAL-2026-SHAI-HULUD-OSS",
|
|
171
171
|
"MAL-2026-TANSTACK-MINI",
|
|
172
|
-
"CVE-2025-51480"
|
|
172
|
+
"CVE-2025-51480",
|
|
173
|
+
"CVE-2025-10164",
|
|
174
|
+
"CVE-2026-5760"
|
|
173
175
|
],
|
|
174
176
|
"description_full": "Adversaries may gain initial access to a system by compromising the unique portions of the AI supply chain. This could include [Hardware](/techniques/AML.T0010.000), [Data](/techniques/AML.T0010.002) and its annotations, parts of the AI [AI Software](/techniques/AML.T0010.001) stack, or the [Model](/techniques/AML.T0010.003) itself. In some instances the attacker will need secondary access to fully carry out an attack using compromised components of the supply chain.",
|
|
175
177
|
"platforms": [
|
|
@@ -1300,7 +1302,9 @@
|
|
|
1300
1302
|
"CVE-2025-8747",
|
|
1301
1303
|
"CVE-2026-31229",
|
|
1302
1304
|
"MAL-2024-PYPI-ULTRALYTICS-XMRIG",
|
|
1303
|
-
"CVE-2025-51480"
|
|
1305
|
+
"CVE-2025-51480",
|
|
1306
|
+
"CVE-2025-10164",
|
|
1307
|
+
"CVE-2026-5760"
|
|
1304
1308
|
],
|
|
1305
1309
|
"description_full": "An adversary may rely upon specific actions by a user in order to gain execution. Users may inadvertently execute unsafe code introduced via [AI Supply Chain Compromise](/techniques/AML.T0010). Users may be subjected to social engineering to get them to execute malicious code by, for example, opening a malicious document file or link.",
|
|
1306
1310
|
"platforms": [
|
|
@@ -343,7 +343,9 @@
|
|
|
343
343
|
"CVE-2026-45829",
|
|
344
344
|
"CVE-2026-6973",
|
|
345
345
|
"CVE-2025-68665",
|
|
346
|
-
"CVE-2025-51480"
|
|
346
|
+
"CVE-2025-51480",
|
|
347
|
+
"CVE-2025-10164",
|
|
348
|
+
"CVE-2026-5760"
|
|
347
349
|
],
|
|
348
350
|
"description_full": "Adversaries may abuse command and script interpreters to execute commands, scripts, or binaries. These interfaces and languages provide ways of interacting with computer systems and are a common feature across many different platforms. Most systems come with some built-in command-line interface and scripting capabilities, for example, macOS and Linux distributions include some flavor of [Unix Shell](https://attack.mitre.org/techniques/T1059/004) while Windows installations include the [Windows Command Shell](https://attack.mitre.org/techniques/T1059/003) and [PowerShell](https://attack.mitre.org/techniques/T1059/001). There are also cross-platform interpreters such as [Python](https://attack.mitre.org/techniques/T1059/006), as well as those commonly associated with client applications such as [JavaScript](https://attack.mitre.org/techniques/T1059/007) and [Visual Basic](https://attack.mitre.org/techniques/T1059/005). Adversaries may abuse these technologies in various ways as a means of executing arbitrary commands. Commands and scripts can be embedded in [Initial Access](https://attack.mitre.org/tactics/TA0001) payloads delivered to victims as lure documents or as secondary payloads downloaded from an existing C2. Adversaries may also execute commands through interactive terminals/shells, as well as utilize various [Remote Services](https://attack.mitre.org/techniques/T1021) in order to achieve remote Execution.(Citation: Powershell Remote Commands)(Citation: Cisco IOS Software Integrity Assurance - Command History)(Citation: Remote Shell Execution in Python)",
|
|
349
351
|
"platforms": [
|
|
@@ -1104,7 +1106,8 @@
|
|
|
1104
1106
|
"CVE-2024-12450",
|
|
1105
1107
|
"CVE-2025-69286",
|
|
1106
1108
|
"CVE-2026-22218",
|
|
1107
|
-
"CVE-2026-22219"
|
|
1109
|
+
"CVE-2026-22219",
|
|
1110
|
+
"CVE-2026-5760"
|
|
1108
1111
|
],
|
|
1109
1112
|
"description_full": "Adversaries may attempt to exploit a weakness in an Internet-facing host or system to initially access a network. The weakness in the system can be a software bug, a temporary glitch, or a misconfiguration. Exploited applications are often websites/web servers, but can also include databases (like SQL), standard services (like SMB or SSH), network device administration and management protocols (like SNMP and Smart Install), and any other system with Internet-accessible open sockets.(Citation: NVD CVE-2016-6662)(Citation: CIS Multiple SMB Vulnerabilities)(Citation: US-CERT TA18-106A Network Infrastructure Devices 2018)(Citation: Cisco Blog Legacy Device Attacks)(Citation: NVD CVE-2014-7169) On ESXi infrastructure, adversaries may exploit exposed OpenSLP services; they may alternatively exploit exposed VMware vCenter servers.(Citation: Recorded Future ESXiArgs Ransomware 2023)(Citation: Ars Technica VMWare Code Execution Vulnerability 2021) Depending on the flaw being exploited, this may also involve [Exploitation for Stealth](https://attack.mitre.org/techniques/T1211) or [Exploitation for Client Execution](https://attack.mitre.org/techniques/T1203). If an application is hosted on cloud-based infrastructure and/or is containerized, then exploiting it may lead to compromise of the underlying instance or container. This can allow an adversary a path to access the cloud or container APIs (e.g., via the [Cloud Instance Metadata API](https://attack.mitre.org/techniques/T1552/005)), exploit container host access via [Escape to Host](https://attack.mitre.org/techniques/T1611), or take advantage of weak identity and access management policies. Adversaries may also exploit edge network infrastructure and related appliances, specifically targeting devices that do not support robust host-based defenses.(Citation: Mandiant Fortinet Zero Day)(Citation: Wired Russia Cyberwar) For websites and databases, the OWASP top 10 and CWE top 25 highlight the most common web-based vulnerabilities.(Citation: OWASP Top 10)(Citation: CWE top 25)",
|
|
1110
1113
|
"platforms": [
|
|
@@ -1195,7 +1198,9 @@
|
|
|
1195
1198
|
"MAL-2026-NODE-IPC-STEALER",
|
|
1196
1199
|
"MAL-2026-RUBYGEMS-BUFFERZONECORP-SLEEPER",
|
|
1197
1200
|
"MAL-2026-SHAI-HULUD-OSS",
|
|
1198
|
-
"CVE-2025-51480"
|
|
1201
|
+
"CVE-2025-51480",
|
|
1202
|
+
"CVE-2025-10164",
|
|
1203
|
+
"CVE-2026-5760"
|
|
1199
1204
|
],
|
|
1200
1205
|
"description_full": "Adversaries may manipulate application software prior to receipt by a final consumer for the purpose of data or system compromise. Supply chain compromise of software can take place in a number of ways, including manipulation of the application source code, manipulation of the update/distribution mechanism for that software, or replacing compiled releases with a modified version. Targeting may be specific to a desired victim set or may be distributed to a broad set of consumers but only move on to additional tactics on specific victims.(Citation: Avast CCleaner3 2018)(Citation: Command Five SK 2011)",
|
|
1201
1206
|
"platforms": [
|
package/data/cve-catalog.json
CHANGED
|
@@ -56,8 +56,9 @@
|
|
|
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
58
|
"current_rate": 0.029,
|
|
59
|
-
"current_floor_enforced_by_test": 0.
|
|
59
|
+
"current_floor_enforced_by_test": 0.028,
|
|
60
60
|
"ladder_to_target": [
|
|
61
|
+
0.028,
|
|
61
62
|
0.029,
|
|
62
63
|
0.03,
|
|
63
64
|
0.05,
|
|
@@ -67,7 +68,7 @@
|
|
|
67
68
|
0.3,
|
|
68
69
|
0.4
|
|
69
70
|
],
|
|
70
|
-
"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).",
|
|
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
72
|
"ladder_note": "Test floor advances when each rung is exceeded with a margin (>= floor + 0.05). Surfaces incremental tightening without coincidence-passing failures.",
|
|
72
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.",
|
|
73
74
|
"discovery_source_enum": [
|
|
@@ -39749,5 +39750,222 @@
|
|
|
39749
39750
|
"_auto_imported": false,
|
|
39750
39751
|
"_intake_method": "manual-verified-curation",
|
|
39751
39752
|
"_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."
|
|
39753
|
+
},
|
|
39754
|
+
"CVE-2025-10164": {
|
|
39755
|
+
"name": "SGLang update_weights_from_tensor Unsafe Deserialization RCE",
|
|
39756
|
+
"type": "RCE",
|
|
39757
|
+
"cvss_score": 7.3,
|
|
39758
|
+
"cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L",
|
|
39759
|
+
"cvss_note": "VulDB (CNA) CVSS v3.1 base 7.3; v4.0 5.5. The GitHub Security Advisory GHSA-9w53-xr52-mwgj describes the impact as remote code execution: SGLang's update_weights_from_tensor path deserializes attacker-controllable serialized-object tensor data (CWE-502 / CWE-20), so a deployment that exposes the weight-update endpoint to untrusted input executes arbitrary code. VulDB's partial-impact scoring understates the deserialization-RCE potential; RWEP captures the real priority.",
|
|
39760
|
+
"cisa_kev": false,
|
|
39761
|
+
"poc_available": true,
|
|
39762
|
+
"poc_description": "Documented in the disclosing advisory (https://github.com/advisories/GHSA-9w53-xr52-mwgj) and the Orca Security writeup: a crafted serialized-object tensor payload sent to update_weights_from_tensor executes on the server.",
|
|
39763
|
+
"ai_discovered": false,
|
|
39764
|
+
"ai_discovery_source": "human_researcher",
|
|
39765
|
+
"ai_discovery_notes": "Disclosed via GitHub Security Advisory GHSA-9w53-xr52-mwgj / VulDB, enriched by NVD. The abused surface is SGLang (lmsys), a widely used high-performance LLM serving / inference framework.",
|
|
39766
|
+
"ai_assisted_weaponization": false,
|
|
39767
|
+
"ai_assisted_notes": "No AI-assisted weaponization; the flaw is unsafe deserialization of model-weight tensors in an LLM serving framework.",
|
|
39768
|
+
"active_exploitation": "none",
|
|
39769
|
+
"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).",
|
|
39770
|
+
"affected": "SGLang (lmsys) 0.4.6 (update_weights_from_tensor); fixed in a later release.",
|
|
39771
|
+
"affected_versions": [
|
|
39772
|
+
"SGLang 0.4.6"
|
|
39773
|
+
],
|
|
39774
|
+
"vector": "SGLang's update_weights_from_tensor deserializes attacker-controllable serialized-object tensor data without validation, so a deployment that exposes the weight-update path to untrusted input loads a malicious serialized-object payload and executes arbitrary code (CWE-502 deserialization of untrusted data / CWE-20 improper input validation).",
|
|
39775
|
+
"complexity": "low",
|
|
39776
|
+
"complexity_notes": "VulDB AV:N / AC:L / PR:N - reachable wherever the weight-update path accepts untrusted input.",
|
|
39777
|
+
"patch_available": true,
|
|
39778
|
+
"patch_required_reboot": false,
|
|
39779
|
+
"live_patch_available": false,
|
|
39780
|
+
"live_patch_tools": [],
|
|
39781
|
+
"live_patch_notes": "Remediation is upgrading to the patched SGLang release and not exposing update_weights_from_tensor to untrusted input; redeploy the serving process.",
|
|
39782
|
+
"vendor_update_paths": [
|
|
39783
|
+
"Upgrade SGLang past 0.4.6 to the patched release. Never deserialize untrusted serialized-object input - use a safe tensor format (e.g. safetensors) for weight updates, and restrict the weight-update path to trusted callers."
|
|
39784
|
+
],
|
|
39785
|
+
"framework_control_gaps": {
|
|
39786
|
+
"NIST-800-53-SI-2": "Flaw-remediation does not single out unsafe deserialization in an LLM serving framework's weight-update path.",
|
|
39787
|
+
"NIST-800-53-SI-10": "No input validation is applied to the serialized-object tensor data before deserialization (CWE-502 / CWE-20).",
|
|
39788
|
+
"NIST-800-53-SR-3": "Supply-chain controls do not treat model-weight tensors fed to the serving framework as untrusted code.",
|
|
39789
|
+
"ISO-27001-2022-A.8.28": "Secure coding does not prohibit deserializing untrusted serialized objects in the serving path.",
|
|
39790
|
+
"NIS2-Art21-network-security": "Article 21 measures do not model an LLM serving framework's weight-update endpoint as an RCE surface.",
|
|
39791
|
+
"DORA-Art-9": "ICT protection measures do not model deserialization RCE in an AI serving framework as an ICT-risk event.",
|
|
39792
|
+
"UK-CAF-B4": "System security objective has no objective for safe deserialization in ML serving frameworks.",
|
|
39793
|
+
"AU-ISM-1546": "Patch-application control does not single out LLM serving frameworks.",
|
|
39794
|
+
"ALL-AI-PIPELINE-INTEGRITY": "No framework treats an LLM serving framework's weight-update input as an integrity boundary requiring a safe (non-deserializing) tensor format."
|
|
39795
|
+
},
|
|
39796
|
+
"atlas_refs": [
|
|
39797
|
+
"AML.T0010",
|
|
39798
|
+
"AML.T0011"
|
|
39799
|
+
],
|
|
39800
|
+
"attack_refs": [
|
|
39801
|
+
"T1059",
|
|
39802
|
+
"T1195.002"
|
|
39803
|
+
],
|
|
39804
|
+
"rwep_score": 25,
|
|
39805
|
+
"rwep_factors": {
|
|
39806
|
+
"cisa_kev": 0,
|
|
39807
|
+
"poc_available": 20,
|
|
39808
|
+
"ai_factor": 0,
|
|
39809
|
+
"active_exploitation": 0,
|
|
39810
|
+
"blast_radius": 20,
|
|
39811
|
+
"patch_available": -15,
|
|
39812
|
+
"live_patch_available": 0,
|
|
39813
|
+
"reboot_required": 0
|
|
39814
|
+
},
|
|
39815
|
+
"rwep_notes": "Moderate-high (RWEP 25, \"patch within 30 days\" band per lib/scoring.js). Not KEV (verified), no confirmed in-the-wild exploitation, patched (Hard Rule #3): poc_available=20 + blast_radius=20 (unsafe-deserialization RCE in a widely used LLM serving framework, gated on the weight-update path receiving untrusted input), minus patch_available 15.",
|
|
39816
|
+
"epss_score": 0.00111,
|
|
39817
|
+
"epss_date": "2026-05-26",
|
|
39818
|
+
"epss_note": "FIRST EPSS 0.00111 (29th percentile) as of 2026-05-26.",
|
|
39819
|
+
"epss_source": "https://api.first.org/data/v1/epss?cve=CVE-2025-10164",
|
|
39820
|
+
"cwe_refs": [
|
|
39821
|
+
"CWE-502",
|
|
39822
|
+
"CWE-20"
|
|
39823
|
+
],
|
|
39824
|
+
"iocs": {
|
|
39825
|
+
"behavioral": [
|
|
39826
|
+
"SGLang servers receiving serialized-object tensor payloads on the update_weights_from_tensor path from untrusted callers.",
|
|
39827
|
+
"Unexpected process execution / child processes spawned by the SGLang serving process after a weight update.",
|
|
39828
|
+
"SGLang 0.4.6 exposing the weight-update path to untrusted input - the exposed precondition."
|
|
39829
|
+
],
|
|
39830
|
+
"_ioc_source_note": "Behavioral signatures anchored to GHSA-9w53-xr52-mwgj and NVD CVE-2025-10164 (CWE-502 / CWE-20)."
|
|
39831
|
+
},
|
|
39832
|
+
"source_verified": "2026-05-26",
|
|
39833
|
+
"verification_sources": [
|
|
39834
|
+
"https://nvd.nist.gov/vuln/detail/CVE-2025-10164",
|
|
39835
|
+
"https://github.com/advisories/GHSA-9w53-xr52-mwgj"
|
|
39836
|
+
],
|
|
39837
|
+
"vendor_advisories": [
|
|
39838
|
+
{
|
|
39839
|
+
"vendor": "GitHub Advisory Database",
|
|
39840
|
+
"advisory_id": "GHSA-9w53-xr52-mwgj",
|
|
39841
|
+
"url": "https://github.com/advisories/GHSA-9w53-xr52-mwgj",
|
|
39842
|
+
"severity": "high",
|
|
39843
|
+
"published_date": "2025-09-09"
|
|
39844
|
+
},
|
|
39845
|
+
{
|
|
39846
|
+
"vendor": "NVD",
|
|
39847
|
+
"advisory_id": "CVE-2025-10164",
|
|
39848
|
+
"url": "https://nvd.nist.gov/vuln/detail/CVE-2025-10164",
|
|
39849
|
+
"severity": "high",
|
|
39850
|
+
"published_date": "2025-09-09"
|
|
39851
|
+
}
|
|
39852
|
+
],
|
|
39853
|
+
"last_updated": "2026-05-26",
|
|
39854
|
+
"discovery_attribution_note": "Manually curated from NVD CVE-2025-10164 (CWE-502 / CWE-20) + GitHub Security Advisory GHSA-9w53-xr52-mwgj + the Orca Security writeup. SGLang LLM-serving-framework unsafe deserialization RCE; reuses the untrusted-model-artifact loading control NEW-CTRL-091 (shared with the Keras / PyTorch / BentoML deserialization class).",
|
|
39855
|
+
"_auto_imported": false,
|
|
39856
|
+
"_intake_method": "manual-verified-curation",
|
|
39857
|
+
"_kev_short_description": "SGLang update_weights_from_tensor deserializes untrusted serialized-object tensor data, yielding RCE wherever the weight-update path accepts untrusted input (CWE-502); upgrade past 0.4.6."
|
|
39858
|
+
},
|
|
39859
|
+
"CVE-2026-5760": {
|
|
39860
|
+
"name": "SGLang /v1/rerank Malicious-Model Jinja2 Template-Injection RCE",
|
|
39861
|
+
"type": "RCE",
|
|
39862
|
+
"cvss_score": 9.8,
|
|
39863
|
+
"cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
|
|
39864
|
+
"cvss_note": "CNA (GitHub) CVSS v3.1 base 9.8 (CRITICAL). SGLang's reranking endpoint (/v1/rerank) renders a model-supplied tokenizer.chat_template with a non-sandboxed jinja2.Environment() instead of ImmutableSandboxedEnvironment, so loading a model file whose chat_template contains a malicious Jinja2 expression achieves remote code execution (CWE-94 code injection / server-side template injection).",
|
|
39865
|
+
"cisa_kev": false,
|
|
39866
|
+
"poc_available": true,
|
|
39867
|
+
"poc_description": "Documented in the disclosing advisory + The Hacker News / Orca writeups: a GGUF model file with a crafted tokenizer.chat_template triggers RCE when rendered by the rerank endpoint's unsandboxed Jinja2 environment.",
|
|
39868
|
+
"ai_discovered": false,
|
|
39869
|
+
"ai_discovery_source": "human_researcher",
|
|
39870
|
+
"ai_discovery_notes": "Disclosed via GitHub Security Advisory / VulnCheck and enriched by NVD. The abused surface is SGLang (lmsys), a widely used LLM serving / inference framework.",
|
|
39871
|
+
"ai_assisted_weaponization": false,
|
|
39872
|
+
"ai_assisted_notes": "No AI-assisted weaponization; the flaw is unsandboxed Jinja2 rendering of a model-supplied chat template (server-side template injection) in an LLM serving framework.",
|
|
39873
|
+
"active_exploitation": "none",
|
|
39874
|
+
"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).",
|
|
39875
|
+
"affected": "SGLang (lmsys) - the /v1/rerank endpoint rendering model-supplied chat templates with a non-sandboxed Jinja2 environment.",
|
|
39876
|
+
"affected_versions": [
|
|
39877
|
+
"SGLang (rerank endpoint, pre-fix)"
|
|
39878
|
+
],
|
|
39879
|
+
"vector": "SGLang's /v1/rerank endpoint renders the tokenizer.chat_template from a loaded model file using a non-sandboxed jinja2.Environment() rather than ImmutableSandboxedEnvironment, so a model whose chat_template embeds a malicious Jinja2 expression executes arbitrary code on the server when the template is rendered (CWE-94 / server-side template injection).",
|
|
39880
|
+
"complexity": "low",
|
|
39881
|
+
"complexity_notes": "CNA AV:N / AC:L / PR:N / UI:N - rendering a malicious model's chat template at the rerank endpoint.",
|
|
39882
|
+
"patch_available": true,
|
|
39883
|
+
"patch_required_reboot": false,
|
|
39884
|
+
"live_patch_available": false,
|
|
39885
|
+
"live_patch_tools": [],
|
|
39886
|
+
"live_patch_notes": "Remediation is upgrading to the SGLang release that renders model-supplied templates with ImmutableSandboxedEnvironment; redeploy the serving process.",
|
|
39887
|
+
"vendor_update_paths": [
|
|
39888
|
+
"Upgrade SGLang to the fixed release. Render any model-supplied chat template with jinja2's ImmutableSandboxedEnvironment (never the default Environment), and treat third-party model files (incl. GGUF) as untrusted."
|
|
39889
|
+
],
|
|
39890
|
+
"framework_control_gaps": {
|
|
39891
|
+
"NIST-800-53-SI-10": "No input validation / sandboxing is applied to the model-supplied chat template before rendering (CWE-94).",
|
|
39892
|
+
"NIST-800-53-SR-3": "Supply-chain controls do not treat a third-party model's embedded chat template as untrusted executable input.",
|
|
39893
|
+
"NIST-800-53-SC-7": "Boundary protection does not isolate the template-rendering path that an unauthenticated rerank request reaches.",
|
|
39894
|
+
"ISO-27001-2022-A.8.28": "Secure coding does not require sandboxed template rendering of model-supplied templates.",
|
|
39895
|
+
"NIS2-Art21-network-security": "Article 21 measures do not model an LLM serving framework's template rendering as an RCE surface.",
|
|
39896
|
+
"DORA-Art-9": "ICT protection measures do not model template-injection RCE in an AI serving framework as an ICT-risk event.",
|
|
39897
|
+
"UK-CAF-B4": "System security objective has no objective for sandboxed template rendering in ML serving frameworks.",
|
|
39898
|
+
"AU-ISM-1546": "Patch-application control does not single out LLM serving frameworks.",
|
|
39899
|
+
"ALL-AI-PIPELINE-INTEGRITY": "No framework treats a model-supplied chat template as untrusted code requiring a sandboxed renderer."
|
|
39900
|
+
},
|
|
39901
|
+
"atlas_refs": [
|
|
39902
|
+
"AML.T0010",
|
|
39903
|
+
"AML.T0011"
|
|
39904
|
+
],
|
|
39905
|
+
"attack_refs": [
|
|
39906
|
+
"T1190",
|
|
39907
|
+
"T1059",
|
|
39908
|
+
"T1195.002"
|
|
39909
|
+
],
|
|
39910
|
+
"rwep_score": 29,
|
|
39911
|
+
"rwep_factors": {
|
|
39912
|
+
"cisa_kev": 0,
|
|
39913
|
+
"poc_available": 20,
|
|
39914
|
+
"ai_factor": 0,
|
|
39915
|
+
"active_exploitation": 0,
|
|
39916
|
+
"blast_radius": 24,
|
|
39917
|
+
"patch_available": -15,
|
|
39918
|
+
"live_patch_available": 0,
|
|
39919
|
+
"reboot_required": 0
|
|
39920
|
+
},
|
|
39921
|
+
"rwep_notes": "High (RWEP 29, \"patch promptly\" band per lib/scoring.js). Not KEV (verified), no confirmed in-the-wild exploitation, patched (Hard Rule #3): poc_available=20 + blast_radius=24 (unauthenticated CVSS-9.8 template-injection RCE via a malicious model at a network endpoint in a widely used LLM serving framework), minus patch_available 15.",
|
|
39922
|
+
"epss_score": 0.00353,
|
|
39923
|
+
"epss_date": "2026-05-26",
|
|
39924
|
+
"epss_note": "FIRST EPSS 0.00353 (58th percentile) as of 2026-05-26.",
|
|
39925
|
+
"epss_source": "https://api.first.org/data/v1/epss?cve=CVE-2026-5760",
|
|
39926
|
+
"cwe_refs": [
|
|
39927
|
+
"CWE-94"
|
|
39928
|
+
],
|
|
39929
|
+
"iocs": {
|
|
39930
|
+
"behavioral": [
|
|
39931
|
+
"SGLang /v1/rerank requests loading model files whose tokenizer.chat_template contains Jinja2 expressions referencing builtins / process / os.",
|
|
39932
|
+
"Unexpected process execution by the SGLang serving process after a rerank request renders a model template.",
|
|
39933
|
+
"SGLang rendering model-supplied chat templates with a non-sandboxed jinja2.Environment - the exposed precondition."
|
|
39934
|
+
],
|
|
39935
|
+
"_ioc_source_note": "Behavioral signatures anchored to the SGLang GitHub Security Advisory and NVD CVE-2026-5760 (CWE-94)."
|
|
39936
|
+
},
|
|
39937
|
+
"source_verified": "2026-05-26",
|
|
39938
|
+
"verification_sources": [
|
|
39939
|
+
"https://nvd.nist.gov/vuln/detail/CVE-2026-5760",
|
|
39940
|
+
"https://kb.cert.org/vuls/id/915947"
|
|
39941
|
+
],
|
|
39942
|
+
"vendor_advisories": [
|
|
39943
|
+
{
|
|
39944
|
+
"vendor": "GitHub Security Advisory",
|
|
39945
|
+
"advisory_id": "CVE-2026-5760",
|
|
39946
|
+
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-5760",
|
|
39947
|
+
"severity": "critical",
|
|
39948
|
+
"published_date": "2026-04-20"
|
|
39949
|
+
},
|
|
39950
|
+
{
|
|
39951
|
+
"vendor": "CERT/CC",
|
|
39952
|
+
"advisory_id": "VU#915947",
|
|
39953
|
+
"url": "https://kb.cert.org/vuls/id/915947",
|
|
39954
|
+
"severity": "critical",
|
|
39955
|
+
"published_date": "2026-04-20"
|
|
39956
|
+
},
|
|
39957
|
+
{
|
|
39958
|
+
"vendor": "NVD",
|
|
39959
|
+
"advisory_id": "CVE-2026-5760",
|
|
39960
|
+
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-5760",
|
|
39961
|
+
"severity": "critical",
|
|
39962
|
+
"published_date": "2026-04-20"
|
|
39963
|
+
}
|
|
39964
|
+
],
|
|
39965
|
+
"last_updated": "2026-05-26",
|
|
39966
|
+
"discovery_attribution_note": "Manually curated from NVD CVE-2026-5760 (CWE-94) + the SGLang GitHub Security Advisory + CERT/CC VU#915947. SGLang LLM-serving-framework malicious-model Jinja2 template-injection RCE; introduces the AI-model template-rendering sandbox control NEW-CTRL-110.",
|
|
39967
|
+
"_auto_imported": false,
|
|
39968
|
+
"_intake_method": "manual-verified-curation",
|
|
39969
|
+
"_kev_short_description": "SGLang /v1/rerank renders a model-supplied jinja2 chat_template in a non-sandboxed Environment, so a malicious model achieves RCE (CWE-94); fix renders with ImmutableSandboxedEnvironment."
|
|
39752
39970
|
}
|
|
39753
39971
|
}
|
package/data/cwe-catalog.json
CHANGED
|
@@ -55,7 +55,8 @@
|
|
|
55
55
|
"CVE-2025-6558",
|
|
56
56
|
"CVE-2026-32201",
|
|
57
57
|
"CVE-2026-34197",
|
|
58
|
-
"CVE-2026-6973"
|
|
58
|
+
"CVE-2026-6973",
|
|
59
|
+
"CVE-2025-10164"
|
|
59
60
|
],
|
|
60
61
|
"framework_controls_partially_addressing": [
|
|
61
62
|
"NIST-800-53-SI-10",
|
|
@@ -424,7 +425,8 @@
|
|
|
424
425
|
"CVE-2026-34197",
|
|
425
426
|
"CVE-2026-45829",
|
|
426
427
|
"CVE-2026-6973",
|
|
427
|
-
"MAL-2026-3083"
|
|
428
|
+
"MAL-2026-3083",
|
|
429
|
+
"CVE-2026-5760"
|
|
428
430
|
],
|
|
429
431
|
"framework_controls_partially_addressing": [
|
|
430
432
|
"NIST-800-53-SI-10",
|
|
@@ -1375,7 +1377,8 @@
|
|
|
1375
1377
|
"CVE-2026-20131",
|
|
1376
1378
|
"CVE-2026-20963",
|
|
1377
1379
|
"CVE-2026-31229",
|
|
1378
|
-
"CVE-2025-68665"
|
|
1380
|
+
"CVE-2025-68665",
|
|
1381
|
+
"CVE-2025-10164"
|
|
1379
1382
|
],
|
|
1380
1383
|
"framework_controls_partially_addressing": [
|
|
1381
1384
|
"NIST-800-53-SI-10",
|
|
@@ -121,7 +121,9 @@
|
|
|
121
121
|
"CVE-2025-69286",
|
|
122
122
|
"CVE-2026-22218",
|
|
123
123
|
"CVE-2026-22219",
|
|
124
|
-
"CVE-2025-51480"
|
|
124
|
+
"CVE-2025-51480",
|
|
125
|
+
"CVE-2025-10164",
|
|
126
|
+
"CVE-2026-5760"
|
|
125
127
|
],
|
|
126
128
|
"atlas_refs": [
|
|
127
129
|
"AML.T0018",
|
|
@@ -1317,7 +1319,9 @@
|
|
|
1317
1319
|
"CVE-2026-31230",
|
|
1318
1320
|
"CVE-2026-33017",
|
|
1319
1321
|
"CVE-2026-22218",
|
|
1320
|
-
"CVE-2025-51480"
|
|
1322
|
+
"CVE-2025-51480",
|
|
1323
|
+
"CVE-2025-10164",
|
|
1324
|
+
"CVE-2026-5760"
|
|
1321
1325
|
],
|
|
1322
1326
|
"atlas_refs": [
|
|
1323
1327
|
"AML.T0051",
|
|
@@ -2318,7 +2322,8 @@
|
|
|
2318
2322
|
"CVE-2026-34159",
|
|
2319
2323
|
"CVE-2026-42897",
|
|
2320
2324
|
"CVE-2024-12450",
|
|
2321
|
-
"CVE-2026-22219"
|
|
2325
|
+
"CVE-2026-22219",
|
|
2326
|
+
"CVE-2026-5760"
|
|
2322
2327
|
],
|
|
2323
2328
|
"atlas_refs": [
|
|
2324
2329
|
"AML.T0096",
|
|
@@ -2436,7 +2441,9 @@
|
|
|
2436
2441
|
"CVE-2024-12450",
|
|
2437
2442
|
"CVE-2026-22218",
|
|
2438
2443
|
"CVE-2026-22219",
|
|
2439
|
-
"CVE-2025-51480"
|
|
2444
|
+
"CVE-2025-51480",
|
|
2445
|
+
"CVE-2025-10164",
|
|
2446
|
+
"CVE-2026-5760"
|
|
2440
2447
|
],
|
|
2441
2448
|
"atlas_refs": [
|
|
2442
2449
|
"AML.T0053"
|
|
@@ -2843,7 +2850,8 @@
|
|
|
2843
2850
|
"CVE-2026-46333",
|
|
2844
2851
|
"CVE-2026-5281",
|
|
2845
2852
|
"CVE-2026-6973",
|
|
2846
|
-
"CVE-2026-9082"
|
|
2853
|
+
"CVE-2026-9082",
|
|
2854
|
+
"CVE-2025-10164"
|
|
2847
2855
|
],
|
|
2848
2856
|
"atlas_refs": [],
|
|
2849
2857
|
"attack_refs": [
|
|
@@ -2927,7 +2935,9 @@
|
|
|
2927
2935
|
"CVE-2024-37052",
|
|
2928
2936
|
"CVE-2024-37060",
|
|
2929
2937
|
"MAL-2026-SHAI-HULUD-OSS",
|
|
2930
|
-
"CVE-2025-51480"
|
|
2938
|
+
"CVE-2025-51480",
|
|
2939
|
+
"CVE-2025-10164",
|
|
2940
|
+
"CVE-2026-5760"
|
|
2931
2941
|
],
|
|
2932
2942
|
"atlas_refs": [
|
|
2933
2943
|
"AML.T0010"
|
|
@@ -5222,7 +5232,9 @@
|
|
|
5222
5232
|
"CVE-2025-69286",
|
|
5223
5233
|
"CVE-2026-22218",
|
|
5224
5234
|
"CVE-2026-22219",
|
|
5225
|
-
"CVE-2025-51480"
|
|
5235
|
+
"CVE-2025-51480",
|
|
5236
|
+
"CVE-2025-10164",
|
|
5237
|
+
"CVE-2026-5760"
|
|
5226
5238
|
],
|
|
5227
5239
|
"atlas_refs": [],
|
|
5228
5240
|
"attack_refs": [
|
|
@@ -5818,7 +5830,9 @@
|
|
|
5818
5830
|
"CVE-2024-12450",
|
|
5819
5831
|
"CVE-2026-22218",
|
|
5820
5832
|
"CVE-2026-22219",
|
|
5821
|
-
"CVE-2025-51480"
|
|
5833
|
+
"CVE-2025-51480",
|
|
5834
|
+
"CVE-2025-10164",
|
|
5835
|
+
"CVE-2026-5760"
|
|
5822
5836
|
],
|
|
5823
5837
|
"atlas_refs": [],
|
|
5824
5838
|
"attack_refs": [
|
|
@@ -5946,7 +5960,9 @@
|
|
|
5946
5960
|
"CVE-2025-69286",
|
|
5947
5961
|
"CVE-2026-22218",
|
|
5948
5962
|
"CVE-2026-22219",
|
|
5949
|
-
"CVE-2025-51480"
|
|
5963
|
+
"CVE-2025-51480",
|
|
5964
|
+
"CVE-2025-10164",
|
|
5965
|
+
"CVE-2026-5760"
|
|
5950
5966
|
],
|
|
5951
5967
|
"atlas_refs": [],
|
|
5952
5968
|
"attack_refs": [
|
|
@@ -6372,7 +6388,9 @@
|
|
|
6372
6388
|
"CVE-2024-12450",
|
|
6373
6389
|
"CVE-2026-22218",
|
|
6374
6390
|
"CVE-2026-22219",
|
|
6375
|
-
"CVE-2025-51480"
|
|
6391
|
+
"CVE-2025-51480",
|
|
6392
|
+
"CVE-2025-10164",
|
|
6393
|
+
"CVE-2026-5760"
|
|
6376
6394
|
],
|
|
6377
6395
|
"atlas_refs": [],
|
|
6378
6396
|
"attack_refs": [
|
|
@@ -17346,5 +17346,105 @@
|
|
|
17346
17346
|
],
|
|
17347
17347
|
"_auto_imported": false,
|
|
17348
17348
|
"_intake_method": "manual-verified-curation"
|
|
17349
|
+
},
|
|
17350
|
+
"CVE-2025-10164": {
|
|
17351
|
+
"name": "SGLang update_weights_from_tensor Unsafe Deserialization RCE",
|
|
17352
|
+
"lesson_date": "2026-05-26",
|
|
17353
|
+
"attack_vector": {
|
|
17354
|
+
"description": "SGLang's update_weights_from_tensor deserializes attacker-controllable serialized-object tensor data, so a deployment exposing the weight-update path to untrusted input executes arbitrary code.",
|
|
17355
|
+
"privileges_required": "none where the weight-update path accepts untrusted input",
|
|
17356
|
+
"complexity": "low",
|
|
17357
|
+
"ai_factor": "The abused surface is SGLang, an LLM serving framework. The lesson: model-weight tensors fed to a serving framework are untrusted code - never deserialize untrusted serialized objects; use a safe tensor format and restrict the weight-update path."
|
|
17358
|
+
},
|
|
17359
|
+
"framework_coverage": {
|
|
17360
|
+
"NIST-800-53-SI-10": {
|
|
17361
|
+
"covered": true,
|
|
17362
|
+
"adequate": false,
|
|
17363
|
+
"gap": "No input validation is applied to the serialized-object tensor data before deserialization."
|
|
17364
|
+
},
|
|
17365
|
+
"NIST-800-53-SR-3": {
|
|
17366
|
+
"covered": true,
|
|
17367
|
+
"adequate": false,
|
|
17368
|
+
"gap": "Supply-chain controls do not treat model-weight tensors as untrusted code."
|
|
17369
|
+
},
|
|
17370
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
17371
|
+
"covered": false,
|
|
17372
|
+
"adequate": false,
|
|
17373
|
+
"gap": "No framework treats a serving framework's weight-update input as an integrity boundary requiring a safe (non-deserializing) format."
|
|
17374
|
+
}
|
|
17375
|
+
},
|
|
17376
|
+
"compliance_exposure_score": {
|
|
17377
|
+
"percent_audit_passing_orgs_still_exposed": 80,
|
|
17378
|
+
"basis": "LLM serving frameworks accept model weights over internal paths on trusted assumptions; unsafe object deserialization persists.",
|
|
17379
|
+
"theater_pattern": "ai_serving_unsafe_deserialization"
|
|
17380
|
+
},
|
|
17381
|
+
"ai_discovered_zeroday": false,
|
|
17382
|
+
"ai_discovery_source": "human_researcher",
|
|
17383
|
+
"ai_assist_factor": "none",
|
|
17384
|
+
"new_control_requirements": [
|
|
17385
|
+
{
|
|
17386
|
+
"id": "NEW-CTRL-091",
|
|
17387
|
+
"name": "UNTRUSTED-MODEL-ARTIFACT-LOADING",
|
|
17388
|
+
"description": "Treat ML model artifacts and model-weight tensors as untrusted code: never deserialize / load serialized-object artifacts from untrusted sources, prefer safe formats (e.g. safetensors), verify provenance, and restrict weight-update / model-load paths to trusted callers in a sandboxed, least-privilege environment. The distinguishing test: send a crafted serialized-object payload to the weight-update path on a sandboxed instance and confirm no code executes.",
|
|
17389
|
+
"evidence": "https://github.com/advisories/GHSA-9w53-xr52-mwgj",
|
|
17390
|
+
"gap_closes": [
|
|
17391
|
+
"NIST-800-53-SI-2",
|
|
17392
|
+
"NIST-800-53-SI-10",
|
|
17393
|
+
"ALL-AI-PIPELINE-INTEGRITY"
|
|
17394
|
+
]
|
|
17395
|
+
}
|
|
17396
|
+
],
|
|
17397
|
+
"_auto_imported": false,
|
|
17398
|
+
"_intake_method": "manual-verified-curation"
|
|
17399
|
+
},
|
|
17400
|
+
"CVE-2026-5760": {
|
|
17401
|
+
"name": "SGLang /v1/rerank Malicious-Model Jinja2 Template-Injection RCE",
|
|
17402
|
+
"lesson_date": "2026-05-26",
|
|
17403
|
+
"attack_vector": {
|
|
17404
|
+
"description": "SGLang renders a model-supplied tokenizer.chat_template with a non-sandboxed jinja2.Environment at the /v1/rerank endpoint, so a malicious model's template expression executes arbitrary code.",
|
|
17405
|
+
"privileges_required": "none (unauthenticated rerank request loading a malicious model)",
|
|
17406
|
+
"complexity": "low",
|
|
17407
|
+
"ai_factor": "The abused surface is SGLang, an LLM serving framework. The lesson: a model-supplied chat template is untrusted code - render it only in a sandboxed jinja2 environment (ImmutableSandboxedEnvironment), never the default Environment."
|
|
17408
|
+
},
|
|
17409
|
+
"framework_coverage": {
|
|
17410
|
+
"NIST-800-53-SI-10": {
|
|
17411
|
+
"covered": true,
|
|
17412
|
+
"adequate": false,
|
|
17413
|
+
"gap": "No sandboxing is applied to the model-supplied chat template before rendering."
|
|
17414
|
+
},
|
|
17415
|
+
"NIST-800-53-SC-7": {
|
|
17416
|
+
"covered": true,
|
|
17417
|
+
"adequate": false,
|
|
17418
|
+
"gap": "Boundary protection does not isolate the template-rendering path an unauthenticated request reaches."
|
|
17419
|
+
},
|
|
17420
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
17421
|
+
"covered": false,
|
|
17422
|
+
"adequate": false,
|
|
17423
|
+
"gap": "No framework treats a model-supplied chat template as untrusted code requiring a sandboxed renderer."
|
|
17424
|
+
}
|
|
17425
|
+
},
|
|
17426
|
+
"compliance_exposure_score": {
|
|
17427
|
+
"percent_audit_passing_orgs_still_exposed": 82,
|
|
17428
|
+
"basis": "LLM serving frameworks render model-supplied chat templates with default (non-sandboxed) jinja2; template-injection via malicious models is rarely audited.",
|
|
17429
|
+
"theater_pattern": "ai_model_template_injection"
|
|
17430
|
+
},
|
|
17431
|
+
"ai_discovered_zeroday": false,
|
|
17432
|
+
"ai_discovery_source": "human_researcher",
|
|
17433
|
+
"ai_assist_factor": "none",
|
|
17434
|
+
"new_control_requirements": [
|
|
17435
|
+
{
|
|
17436
|
+
"id": "NEW-CTRL-110",
|
|
17437
|
+
"name": "AI-MODEL-TEMPLATE-RENDERING-SANDBOX",
|
|
17438
|
+
"description": "An LLM serving framework that renders model-supplied templates (jinja2 chat_template, prompt templates, tokenizer config) must render them in a sandboxed environment - jinja2's ImmutableSandboxedEnvironment, never the default jinja2.Environment() - and treat third-party model files (incl. GGUF) as untrusted. The distinguishing test: load a model whose chat_template embeds a Jinja2 expression that reaches builtins/os on a staging instance and confirm rendering is refused, not executed - a framework that renders model templates with the default environment is exploitable for server-side template-injection RCE.",
|
|
17439
|
+
"evidence": "https://kb.cert.org/vuls/id/915947",
|
|
17440
|
+
"gap_closes": [
|
|
17441
|
+
"NIST-800-53-SI-10",
|
|
17442
|
+
"NIST-800-53-SC-7",
|
|
17443
|
+
"ALL-AI-PIPELINE-INTEGRITY"
|
|
17444
|
+
]
|
|
17445
|
+
}
|
|
17446
|
+
],
|
|
17447
|
+
"_auto_imported": false,
|
|
17448
|
+
"_intake_method": "manual-verified-curation"
|
|
17349
17449
|
}
|
|
17350
17450
|
}
|