Skip to main content

YOLOv9 EUVDEUVD-2026-103679

| CVE-2026-111991 LOW
Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection') (CWE-74)
2026-10-18 cna@vuldb.com GHSA-fj9f-3w9g-75gj
2.1
CVSS 4.0 · Vendor: vuldb
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Publish malicious ONNX model
  2. Exploit
    Victim loads it via DetectMultiBackend
  3. Execution
    Metadata handler evaluates names/stride
  4. Impact
    Injected 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.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

yolov9 0.1

Affected Packages

euvd yolov9 no fix

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

Vendor (vuldb) PRIMARY 2.1 LOW
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
vuln.today AI 8.8 HIGH

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.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (vuldb).

CVSS VectorVendor: vuldb

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

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

EPSS Score
0.3%
Top 77% exploitable
Prevalence
Low
object-detection research repo, niche ML-developer footprint, not enterprise-deployed
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Low

Priority Score

10
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +10
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Python

View all
CVE-2025-24016 CRITICAL POC
9.9 Feb 10

Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t

CVE-2025-27520 CRITICAL POC
9.8 Apr 04

BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser

CVE-2025-2945 CRITICAL POC
9.9 Apr 03

pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi

CVE-2013-5093 MEDIUM POC
6.8 Sep 27

The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python

CVE-2025-32375 CRITICAL POC
9.8 Apr 09

BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica

CVE-2014-0224 HIGH POC
7.4 Jun 05

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

CVE-2024-21644 HIGH POC
7.5 Jan 08

pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.

CVE-2026-33017 CRITICAL POC
9.3 Mar 17

Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301

CVE-2017-9462 HIGH POC
8.8 Jun 06

In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse

CVE-2026-49869 CRITICAL POC
10.0 Jun 26

Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2024-21645 MEDIUM POC
5.3 Jan 08

pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy