Impact
The vulnerability originates in uproot's dynamic generation of Python class source from ROOT TStreamerInfo records. The software unquotes metadata such as streamer element names when inserting them into the generated code. An attacker can supply a crafted ROOT file containing Python expression‑breaking content in these fields. When uproot constructs and executes the reader methods, the injected expression is evaluated in the context of the calling process, enabling arbitrary Python code execution.
Affected Systems
Affected parties include users of the scikit‑hep uproot library version 5.7.4 and earlier. The bug is triggered when opening or processing a ROOT file that contains malicious TStreamerInfo metadata. The issue is present in all code paths that dynamically compile reader classes from file metadata. Switching to a newer uproot release that contains the commit c045c282… protects against this attack.
Risk and Exploitability
Severity is high with a CVSS score of 8.5. The EPSS score is reported as <1%, indicating a low exploitation probability under current data. The vulnerability is not listed in the CISA KEV catalog. Because the exploitation requires a user‑controlled ROOT file and a runtime environment that imports uproot, the likely attack vector is a compromised or malicious input file processed by an application. The risk is therefore significant for systems that automatically ingest or open untrusted ROOT files.
OpenCVE Enrichment