CVE-2026-111991: YOLOv9: code injection via ONNX metadata names/stride
MEDIUMCISA: TRACK*A code injection flaw in YOLOv9 0.1 lets a crafted ONNX model's metadata (the names and stride fields) inject code into DetectMultiBackend.__init__ when the model is loaded. The score is medium (CVSS 6.3) and exploitation requires user interaction, which in practice means someone loading an attacker-supplied model. EPSS is low (0.00312, top 77% percentile), the CVE is not in CISA KEV, and there is no known public exploit or Nuclei template. NVD-style data lists a public disclosure, though, and the maintainers have not responded to the issue report, so a vendor patch should not be assumed. Until a fix ships, only load ONNX models from trusted, verified sources, and run inference in sandboxed environments with minimal privileges.
What is the risk?
Medium overall. The attack is network-reachable with low complexity and no privileges, but it requires a victim to load a malicious model, which limits mass exploitation. EPSS and KEV data show no sign of active exploitation. The disclosure is public, the maintainer has not responded, and no patch is available, so exposure persists for any pipeline that loads untrusted ONNX files. Impact is limited to low confidentiality, integrity and availability in the CVSS vector, but the underlying primitive is code execution in the inference process, which can be worse if that process holds credentials or privileged access.
How does the attack unfold?
How severe is it?
What is the attack surface?
What should I do?
1 step1) No vendor fix is known; monitor the upstream repository and issue #670 for a patch and pin to a fixed commit once available. 2) Only load ONNX models from trusted, integrity-checked sources (hash or signature verification) and block user-supplied model uploads. 3) Run model loading and inference in sandboxed containers with no network egress, read-only filesystems and least-privilege credentials. 4) Review models for suspicious metadata in the names and stride properties, since these values are used in code evaluation. 5) As a code-level workaround, replace eval-style parsing of ONNX metadata with safe parsing such as ast.literal_eval or JSON, and validate types. 6) Monitor for unexpected child processes or outbound connections from inference workers.
What does CISA's SSVC say?
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-111991?
A code injection flaw in YOLOv9 0.1 lets a crafted ONNX model's metadata (the names and stride fields) inject code into DetectMultiBackend.__init__ when the model is loaded. The score is medium (CVSS 6.3) and exploitation requires user interaction, which in practice means someone loading an attacker-supplied model. EPSS is low (0.00312, top 77% percentile), the CVE is not in CISA KEV, and there is no known public exploit or Nuclei template. NVD-style data lists a public disclosure, though, and the maintainers have not responded to the issue report, so a vendor patch should not be assumed. Until a fix ships, only load ONNX models from trusted, verified sources, and run inference in sandboxed environments with minimal privileges.
Is CVE-2026-111991 actively exploited?
No confirmed active exploitation of CVE-2026-111991 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-111991?
1) No vendor fix is known; monitor the upstream repository and issue #670 for a patch and pin to a fixed commit once available. 2) Only load ONNX models from trusted, integrity-checked sources (hash or signature verification) and block user-supplied model uploads. 3) Run model loading and inference in sandboxed containers with no network egress, read-only filesystems and least-privilege credentials. 4) Review models for suspicious metadata in the names and stride properties, since these values are used in code evaluation. 5) As a code-level workaround, replace eval-style parsing of ONNX metadata with safe parsing such as ast.literal_eval or JSON, and validate types. 6) Monitor for unexpected child processes or outbound connections from inference workers.
What systems are affected by CVE-2026-111991?
This vulnerability affects the following AI/ML architecture patterns: model serving, computer vision inference, edge inference, training and evaluation pipelines.
What is the CVSS score for CVE-2026-111991?
CVE-2026-111991 has a CVSS v3.1 base score of 6.3 (MEDIUM). The EPSS exploitation probability is 0.38%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0010.003ModelAML.T0011.000Unsafe AI ArtifactsAML.T0018.002Embed MalwareAML.T0050Command and Scripting InterpreterCompliance Controls Affected
What are the technical details?
Original Advisory
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.
Exploitation Scenario
An attacker publishes a YOLOv9-compatible ONNX model on a public hub or shares it via a supply chain channel, with a malicious payload embedded in the names or stride metadata. A data scientist or automated pipeline loads the model through DetectMultiBackend. The payload is evaluated during initialization and runs arbitrary Python in the process, letting the attacker steal API keys and dataset credentials, or establish a reverse shell on the inference host.
Weaknesses (CWE)
CWE-74Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection')PrimaryCWE-94Improper Control of Generation of Code ('Code Injection')PrimaryCWE-74Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection')CWE-94Improper Control of Generation of Code ('Code Injection')CWE-74 — Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection'): The product constructs all or part of a command, data structure, or record using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify how it is parsed or interpreted when it is sent to a downstream component.
- [Requirements] Programming languages and supporting technologies might be chosen which are not subject to these issues.
- [Implementation] Utilize an appropriate mix of allowlist and denylist parsing to filter control-plane syntax from all input.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:LReferences
Timeline
Related Vulnerabilities
CVE-2025-5952810.0Flowise: Unauthenticated RCE via MCP config injection
Same attack type: Supply ChainCVE-2024-291210.0BentoML: RCE via insecure deserialization (CVSS 10)
Same attack type: Supply ChainCVE-2023-376510.0MLflow: path traversal allows arbitrary file read
Same attack type: Supply ChainCVE-2025-512010.0smolagents: sandbox escape enables unauthenticated RCE
Same attack type: Supply ChainCVE-2026-2185810.0n8n: Input Validation flaw enables exploitation
Same attack type: Code Execution