Database/AI/ML frameworks & serving
tract: unchecked size multiplication when reading an NNEF tensor gives a heap over-read on model load
Impact
read_tensor multiplies attacker-controlled tensor dimensions as usize without overflow checks, so a crafted NNEF archive can make the wrapped size check accept a small allocation while as_slice_unchecked hands out a much larger logical slice. Building the model through as_uniform then reads past the end of the heap allocation, disclosing adjacent process memory into the model, and a later access can segfault the process. Any service that loads user-supplied or tenant-supplied NNEF models through model_for_path or model_for_read inherits this: the leaked bytes come from the serving process's own heap, which on a shared inference host can include other requests' inputs or credentials held in memory. The advisory notes no out-of-bounds write or code execution was demonstrated, and the bool, String and block-quant paths are separately guarded - only the dense numeric tensor path is affected.
Who can reach it
Anyone who can get the process to load a model file - a tenant uploading a model to an inference service, or an operator loading an untrusted artifact. No authentication is needed at the library level; the CVSS vector reflects local load with user interaction.
What to do
Upgrade tract to 0.21.16, 0.22.2 or 0.23.1, rebuild any binary that vendors tract-nnef, and restart the serving process. Nothing to flash or reboot. Until then, load only models from sources you control, or validate NNEF archives out of process where a segfault costs nothing.
References
Related entries
- tract: ONNX external_data path is not sanitised, so loading a model reads arbitrary local filesCVE-2026-55832 · tract-onnx (external_data path handling, get_external_resources / MmapDataResolver)Medium
- 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
- 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
- Ray (dashboard DELETE endpoints): Browser-origin protection covers POST/PUT but not DELETECVE-2026-27482 · Ray (dashboard DELETE endpoints)Medium
- LocalAI (`/models/apply`): SSRF and partial local file inclusionCVE-2024-6095 · LocalAI (`/models/apply`)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.