CVE-2026-9147
Received Received - Intake

Python Code Execution in uproot via Streamer Metadata Injection

Vulnerability report for CVE-2026-9147, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-07-18

Last updated on: 2026-07-18

Assigner: VulnCheck

Description

uproot dynamically generates Python class source code from ROOT TStreamerInfo records in a file and compiles it at runtime. Some file-controlled streamer metadata fields (for example, streamer element names) are interpolated into the generated Python source without safe quoting via repr() or the !r format specifier. An attacker who can supply a crafted ROOT file can place Python expression-breaking content into a streamer metadata field. When uproot generates and invokes the corresponding reader method, the injected Python expression is evaluated in the context of the process opening the file, resulting in arbitrary Python code execution in applications that open or process attacker-controlled ROOT files with affected uproot code paths.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-07-18
Last Modified
2026-07-18
Generated
2026-07-18
AI Q&A
2026-07-18
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
scikit-hep uproot to 5.7.5 (exc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-94 The product constructs all or part of a code segment using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the syntax or behavior of the intended code segment.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

CVE-2026-9147 is a code injection vulnerability in the uproot library. It occurs because uproot dynamically generates Python class source code from ROOT TStreamerInfo records and compiles it at runtime. Attackers can craft a ROOT file with malicious streamer metadata fields, such as streamer element names, which are interpolated into the generated Python source without proper sanitization. This allows arbitrary Python code execution when the affected uproot code processes the file.

Detection Guidance

Check if your uproot version is 5.7.4 or earlier. Run: pip show uproot. If affected, update to the latest version. Inspect ROOT files for unusual metadata fields or names that may contain executable code. Monitor for unexpected Python code execution in processes handling ROOT files.

Impact Analysis

If you use uproot versions 5.7.4 or earlier to open or process attacker-controlled ROOT files, this vulnerability could allow an attacker to execute arbitrary Python code on your system. This could lead to data theft, system compromise, or further network intrusions depending on the context in which uproot is used.

Compliance Impact

This vulnerability could lead to unauthorized code execution, potentially resulting in data breaches or unauthorized access to sensitive data. Such incidents may violate compliance requirements under GDPR, HIPAA, or other regulations that mandate strict data protection and access controls. Organizations using affected uproot versions may face regulatory penalties or legal consequences if exploited.

Mitigation Strategies

Upgrade uproot to a version beyond 5.7.4, specifically commit c045c28 or later. Avoid opening untrusted ROOT files. Implement input validation for ROOT files. Use sandboxing or restricted execution environments for applications processing these files.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-9147. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart