Skip to main content

Ultralytics EUVDEUVD-2026-112259

| CVE-2026-118614 HIGH
Code Injection (CWE-94)
2026-10-28 zdi GHSA-jqr9-8ghm-qpc3
7.8
CVSS 3.0 · Vendor: zdi
View

Attack ChainAIDerived

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

  1. Access
    Deliver malicious dataset config to victim
  2. Delivery
    Victim loads dataset via Ultralytics
  3. Exploit
    Unvalidated string reaches check_det_dataset
  4. Execution
    Injected Python executed (CWE-94)
  5. Impact
    Arbitrary code runs as current user

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Code injection prevention, sandbox exec
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires the victim to process an attacker-controlled input that reaches the check_det_dataset function - per the description, the target must open a malicious file or visit a malicious page - where an unvalidated user-supplied string is used to execute Python code (CWE-94). Limiting factors: the attack vector is local (AV:L) and mandatory user interaction is required (UI:R), so it cannot be triggered against an unattended or network-exposed service without a victim action; scope is unchanged (S:U) and code runs only with the current user's privileges, giving no built-in privilege escalation. The exact string/field and the configuration path that reaches the vulnerable call are not detailed in the available sources.

Impact

This is a credible but interaction-gated code-execution issue rather than a drop-everything emergency. The input CVSS 3.0 vector (CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H, base 7.8 HIGH) describes a local attack vector with low complexity and no required privileges, but conditioned on user interaction - the victim must open a malicious file or visit a malicious page. The vuln.today decision label is 'this_week', consistent with a serious flaw that is not under active exploitation. No EPSS score, no CISA KEV listing, and no verified public exploit were supplied, so there is no evidence of in-the-wild abuse; exploitation status is 'no public exploit identified at time of analysis' (the single reference is the ZDI advisory ZDI-26-813, an advisory rather than exploit code). The main tension to flag: the description's phrase 'remote attackers' reads as network-facing, yet the CVSS vector is AV:L and gated on UI:R - this is a local/interaction-driven vector (the attacker delivers a malicious dataset/file the victim processes), not an unauthenticated remote network service exploit; defenders should not treat it as internet-reachable RCE. PR:N indicates no authentication is needed, but the UI:R requirement and local vector materially reduce real-world mass-exploitation risk, pointing toward targeted social-engineering use. SSVC-style signals beyond the decision label (automatable, exploitation state) were not provided.

Exploit ScenarioDerived

An attacker crafts a malicious dataset configuration (or file/page delivering one) whose string value is consumed by Ultralytics' check_det_dataset function and is executed as Python code without validation. A data scientist or ML engineer loads the attacker-supplied dataset - e.g. from a shared repo, download, or page - triggering arbitrary code execution in the context of their user account. Exploitation requires that user interaction (AV:L/UI:R); no public exploit code was identified at time of analysis.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet

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

Alert me

AnalysisAIv1 – Oct 28, 2026

Code injection in the Ultralytics Python package's check_det_dataset function lets an attacker execute arbitrary Python in the context of the user running the library. Per the supplied CVSS vector the weakness is locally reachable and unauthenticated (AV:L/PR:N), but it is gated by user interaction (UI:R) - the victim must open a crafted file or visit a malicious page that feeds an unvalidated string into the vulnerable call - and the resulting code runs only with the current user's privileges (S:U). No CISA KEV entry or confirmed public exploit code was identified at time of analysis; the only public reference is the ZDI advisory ZDI-26-813, and the CPE string wildcards all Ultralytics versions as potentially affected.

RemediationAI

No vendor-released patch was identified at time of analysis, and no fixed version is stated in the available data, so remediation must start with monitoring ZDI-26-813 (https://www.zerodayinitiative.com/advisories/ZDI-26-813/) and the Ultralytics release channel for a corrected version and applying it as soon as it is published. Until then, the actionable control that follows directly from the assessed exploitation conditions is to ensure untrusted inputs never reach check_det_dataset: do not open or process dataset configuration files, archives, or pages from untrusted sources with Ultralytics-based tooling, and gate any pipeline that does so behind manual review of the input - the trade-off is reduced automation and analyst overhead for dataset onboarding. Because the injected code executes with the current user's privileges, run Ultralytics workloads under a least-privilege account or in a disposable, isolated environment (container or VM) with no access to production credentials or sensitive mounts; the trade-off is extra operational friction and reduced convenience for shared or GPU-attached hosts. The user-interaction requirement means restricting who can hand files to the tool and avoiding automatic ingestion of externally supplied configs materially shrinks exposure, but no configuration-only setting is documented as fully eliminating the flaw.

Affected VersionsENISA

Ultralytics 8.4.65

Affected Packages

euvd ultralytics 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 flaw is classified CWE-94 (Improper Control of Generation of Code / code injection) in an open-source Python machine-learning library, where a user-supplied string reaches a Python code-execution sink without adequate validation. Because the affected component is an interpreted-language library rather than a network service, the attack surface is whatever input the check_det_dataset function parses on behalf of the caller, which is why the assessed vector is local (AV:L) with a required user action (UI:R) rather than remotely exploitable over the network. CPE cpe:2.3:a:ultralytics:ultralytics:*:*:*:*:*:*:*:* uses a wildcard version, so the advisory does not enumerate a fixed or introduced version boundary, and the exact string/field and configuration path that reach the vulnerable call are not described in the available sources. Scope is unchanged, so injected code inherits the invoking user's permissions and there is no inherent privilege-escalation primitive.

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 (zdi) PRIMARY 7.8 HIGH
AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
vuln.today AI 7.8 HIGH

Delivery of a malicious file/dataset that the victim opens gives AV:L and UI:R; no auth needed (PR:N); code injection yields full C/I/A impact in the user's context (S:U).

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

Primary rating from Vendor (zdi).

CVSS VectorVendor: zdi

Attack Vector
Local
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

DescriptionCVE.org

Ultralytics check_det_dataset Code Injection Remote Code Execution Vulnerability. This vulnerability allows remote attackers to execute arbitrary code on affected installations of Ultralytics. User interaction is required to exploit this vulnerability in that the target must visit a malicious page or open a malicious file.

The specific flaw exists within the check_det_dataset function. The issue results from the lack of proper validation of a user-supplied string before using it to execute Python code. An attacker can leverage this vulnerability to execute code in the context of the current user. Was ZDI-CAN-30119.

Executive ViewAI

Why It Matters

A high-severity code injection vulnerability in the Ultralytics Python package allows attackers to run arbitrary Python code on any workstation or server where the library is used, but only if a user opens a malicious file or webpage. This affects data scientists, ML engineers, and research teams that rely on Ultralytics for computer vision tasks, potentially exposing sensitive model data and privileged user credentials. Leadership should prioritize this because the absence of a vendor patch and the package's wide deployment in AI workflows create a persistent, user-triggered risk that can lead to data breaches or system compromise.

Business Impact: High
Compensating Controls

No vendor patch identified at time of analysis. Interim mitigations: restrict users from opening untrusted files or links while Ultralytics is active, enforce least-privilege execution, deploy endpoint detection to flag anomalous Python subprocess launches, and isolate Ultralytics workloads in sandboxed or containerized environments.

Threat Intelligence Overview

Prevalence
Medium
popular Python ML/computer-vision library (YOLO), common among ML practitioners
Data Quality
2 sources
Confidence: Low

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 HIGH
CISA KEV No
Public POC No
EPSS N/A
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Small
Automatable· derived
No
Human Impact
High

Priority Score

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

Attack Technique

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

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