CVE-2026-9147: Improper Control of Generation of Code ('Code Injection') in scikit-hep uproot
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.
AI Analysis
Technical Summary
The uproot library dynamically generates Python class source code from ROOT TStreamerInfo records and compiles it at runtime. Certain file-controlled streamer metadata fields, such as streamer element names, are inserted into the generated Python source without proper quoting via repr() or the !r format specifier. An attacker controlling a ROOT file can insert malicious Python expression-breaking content into these metadata fields. When uproot generates and executes the corresponding reader method, the injected Python code is evaluated in the context of the process opening the file, resulting in arbitrary code execution. This vulnerability affects any application using affected uproot code paths to open or process attacker-controlled ROOT files.
Potential Impact
Successful exploitation allows an attacker to execute arbitrary Python code within the context of the application processing the malicious ROOT file. This can lead to full compromise of the application environment, unauthorized actions, data manipulation, or further attacks. The vulnerability requires the attacker to supply a crafted ROOT file and for the victim to open or process it using the vulnerable uproot code.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until an official fix is available, avoid processing untrusted ROOT files with affected versions of uproot. Monitor vendor channels for updates and apply patches once released.
CVE-2026-9147: Improper Control of Generation of Code ('Code Injection') in scikit-hep uproot
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 v4.0
Score 8.5high
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The uproot library dynamically generates Python class source code from ROOT TStreamerInfo records and compiles it at runtime. Certain file-controlled streamer metadata fields, such as streamer element names, are inserted into the generated Python source without proper quoting via repr() or the !r format specifier. An attacker controlling a ROOT file can insert malicious Python expression-breaking content into these metadata fields. When uproot generates and executes the corresponding reader method, the injected Python code is evaluated in the context of the process opening the file, resulting in arbitrary code execution. This vulnerability affects any application using affected uproot code paths to open or process attacker-controlled ROOT files.
Potential Impact
Successful exploitation allows an attacker to execute arbitrary Python code within the context of the application processing the malicious ROOT file. This can lead to full compromise of the application environment, unauthorized actions, data manipulation, or further attacks. The vulnerability requires the attacker to supply a crafted ROOT file and for the victim to open or process it using the vulnerable uproot code.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until an official fix is available, avoid processing untrusted ROOT files with affected versions of uproot. Monitor vendor channels for updates and apply patches once released.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- VulnCheck
- Date Reserved
- 2026-05-20T21:05:14.933Z
- Cvss Version
- 4.0
- State
- PUBLISHED
- Remediation Level
- null
Threat ID: 6a5b7b8ce0f76a4092ef4381
Added to database: 07/18/2026, 13:11:40 UTC
Last enriched: 07/18/2026, 13:25:53 UTC
Last updated: 07/18/2026, 13:56:38 UTC
Views: 20
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.