Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessPublish malicious ONNX model
-
ExploitVictim loads it via DetectMultiBackend
-
ExecutionMetadata handler evaluates names/stride
-
ImpactInjected Python executes in victim process
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Input neutralization, injection prevention
|
| Exploitation Conditions | Exploitation requires the victim to load an attacker-controlled or tampered ONNX model file into YOLOv9 via DetectMultiBackend, where the ONNX metadata fields 'names' and 'stride' are evaluated as code. The specific prerequisite is the use of the ONNX backend path that parses model metadata (loading a .onnx weights file), not PyTorch .pt-only usage. Limiting factors: the attacker cannot trigger this against a passive/running service - a user or automated pipeline must obtain and load the untrusted model (UI:P/UI:R), so the realistic threat is a supply-chain / malicious-pretrained-model scenario rather than direct remote compromise of a server. |
| Impact | Signals are mixed and point to a low operational priority despite a serious weakness class. The vendor-supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P) yields only 2.1 because VulDB rated impact as VC:L/VI:L/VA:L (Low across the board), yet the CWE is CWE-74 code injection via eval of ONNX metadata (names/stride) in DetectMultiBackend.__init__ - a weakness that realistically produces arbitrary code execution in the loading process, not merely limited impact. This is a conflict worth flagging: the Low impact metrics appear to understate a code-injection flaw whose true impact is closer to full process compromise (see assessed vectors below). Mitigating the risk, exploitation is NOT zero-click: UI:P/UI:R means the victim must load an attacker-supplied malicious model file, so there is no spraying against a listening service. Exploitation status is 'publicly available exploit code exists' (POC disclosed per the issue report) - this is NOT active exploitation; the CVE is not in CISA KEV and no EPSS score was provided in the input. Net: a genuine code-execution bug in a developer-facing ML repo, but gated behind user-initiated loading of untrusted models and with no evidence of in-the-wild use, so it is a patch-when-convenient / supply-chain-hygiene item rather than an emergency. |
| Exploit ScenarioDerived | An attacker publishes a trojanized YOLOv9 .onnx model (e.g., on a model hub, in a repo, or via a 'pretrained weights' link) whose embedded metadata fields names/stride contain injected Python. When a developer or inference pipeline loads it through DetectMultiBackend, the ONNX metadata handler evaluates the crafted strings and runs the attacker's code in the victim's process. A public proof-of-concept has been disclosed via the project's issue tracker (issue #670), lowering the effort to reproduce. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 18, 2026
Code injection in WongKinYiu YOLOv9 0.1 via the ONNX metadata handler allows an attacker who supplies a tampered .onnx model to execute code when DetectMultiBackend parses the model's 'names' and 'stride' fields; exploitation is unauthenticated but requires the victim to load the untrusted model (UI:P), making the realistic threat a supply-chain or malicious-pretrained-model scenario rather than direct compromise of a passive service. Publicly available exploit code exists, and the project has not responded to the issue report; signals are mixed and point to a low operational priority despite a serious weakness class.
RemediationAI
No vendor-released patch identified at time of analysis; the upstream issue report at https://github.com/WongKinYiu/yolov9/issues/670 remains unanswered and no fixed version is listed. Until a fix is published, avoid loading untrusted, third-party, or downloaded .onnx weights into YOLOv9; if ONNX inference is required, validate or sanitize model metadata before DetectMultiBackend initialization, reject models whose 'names' or 'stride' fields contain executable expressions, and accept only models whose hashes or signatures match a controlled internal source. Run inference in a sandboxed container with least privilege and no sensitive host mounts to limit code-execution impact, accepting reduced GPU passthrough or performance overhead as a trade-off. Disabling the ONNX backend or restricting workloads to trusted .pt files removes the exposed path but breaks .onnx model compatibility. Monitor https://github.com/WongKinYiu/yolov9/ and https://vuldb.com/vuln/421656 for vendor updates.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The issue is a CWE-74 injection flaw in YOLOv9's model-loading layer: DetectMultiBackend.__init__ in models/common.py consumes metadata embedded in ONNX model files, and the 'names' and 'stride' fields can be manipulated so attacker-controlled strings are evaluated as code. ONNX is an interchangeable model format in which metadata travels alongside weights, so a malicious .onnx file can carry a payload in ordinary-looking metadata without requiring a separate exploit primitive. The affected component is specifically the ONNX backend path that parses model metadata, not PyTorch .pt-only usage; no CPE identifiers were supplied, but the vulnerable package is WongKinYiu yolov9 0.1. The assessed CVSS:3.1 vector is AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H, meaning remote unauthenticated code injection with high confidentiality, integrity, and availability impact once the user loads the crafted model.
Know when Python gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P
Code injection via eval of ONNX metadata yields arbitrary code execution (C/I/A:H) in the victim process, but requires the user to load a malicious model, so UI:R and S:U.
Primary rating from Vendor (vuldb).
CVSS VectorVendor: vuldb
DescriptionCVE.org
A security vulnerability has been detected in WongKinYiu yolov9 0.1. This vulnerability affects the function DetectMultiBackend.__init__ of the file models/common.py of the component ONNX Metadata Handler. The manipulation of the argument names/stride leads to code injection. Remote exploitation of the attack is possible. The exploit has been disclosed publicly and may be used. The project was informed of the problem early through an issue report but has not responded yet.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t
BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser
pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi
The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.
Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301
In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse
Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne
EUVD-2026-103679
GHSA-fj9f-3w9g-75gj
NVD
CVE.org
EPSS
VulDB
Exploit-DB