Database/AI/ML frameworks & serving
tract: ONNX external_data path is not sanitised, so loading a model reads arbitrary local files
Impact
get_external_resources joins the attacker-controlled external_data location to the model directory without rejecting absolute paths or .. components, so MmapDataResolver will mmap any file the serving process can read and place its contents into model tensors or inference output. A tenant that can submit an ONNX model to an inference service therefore gets a file-read primitive with the privileges of the model server - service account tokens, API keys, other tenants' model weights on shared storage - and the data comes back through ordinary inference results, which makes it unlikely to look like an attack in logs. Attacker-controlled offset and length can also select an out-of-range mapping and crash the process. The flaw does not write files or execute code. This is a distinct path-traversal issue from the NNEF over-read in CVE-2026-55093 and has its own fixed versions.
Who can reach it
Anyone who can supply a model file that the process loads via model_for_path - typically a tenant uploading an ONNX model, or a pipeline pulling a model from an untrusted registry.
What to do
Upgrade tract to 0.21.17, 0.22.3 or 0.23.2, rebuild anything vendoring tract-onnx, and restart the serving process. As mitigation, reject ONNX models that declare external_data, or load untrusted models in a sandbox with no access to secrets and no other tenants' data on the filesystem.
References
Related entries
- BentoML 1.3.9 (open redirect in the serving UI): A crafted URL against the BentoML server bounces the visitor to anNCVD-2025-017-bentoml-1-3-9-open-redirect-in-t · BentoML 1.3.9 (open redirect in the serving UI)Medium
- ClearML: Passwords stored in plaintext in MongoDBCVE-2024-24595 · ClearMLMedium
- LangChain.js MongoDB chat history: unvalidated session id injects a MongoDB query conditionCVE-2026-106119 · LangChain.js @langchain/mongodb (MongoDBChatMessageHistory session id)Medium
- JupyterLab: authenticated users bypass administrator plugin lock rules via /lab/api/pluginsCVE-2026-73627 · JupyterLab Extension/Plugin Manager (/lab/api/plugins lock-rule enforcement)Medium
- Docker Sandboxes: proxy fails open when masking credentials, leaking host OAuth tokens to sandboxed codeCVE-2026-101998 · Docker Sandboxes (egress proxy credential masking)Medium
- Docker Sandboxes: egress proxy strips only sentinel-valued credentials, letting sandboxed code attach its ownCVE-2026-105452 · Docker Sandboxes (egress proxy alternate-credential stripping)Medium
This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.