Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDeliver malicious dataset config to victim
-
DeliveryVictim loads dataset via Ultralytics
-
ExploitUnvalidated string reaches check_det_dataset
-
ExecutionInjected Python executed (CWE-94)
-
ImpactArbitrary 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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 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
AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
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).
Primary rating from Vendor (zdi).
CVSS VectorVendor: zdi
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.
Zero Day Initiative Advisories
Executive ViewAI
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.
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
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
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.
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-112259
GHSA-jqr9-8ghm-qpc3
NVD
CVE.org
Exploit-DB