FR
live
High CVSS 7.8

CVE-2026-9147

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.

What this means

Exposure
Exploitable with local access to the machine and without authentication — but only if a user opens booby-trapped content.
Impact
An attacker can read sensitive data, modify or destroy data and take the service offline.
Weakness
The application interprets attacker-supplied code, which then runs with its privileges.
Likelihood
Its EPSS score stays low: nothing points to imminent exploitation, which is no reason to leave it unpatched.

What to doFold into the next patch cycle.

Read automatically from the CVSS vector, the weakness type (CWE) and the EPSS score. The technical description above remains the one published by NIST.

Published
18 July 2026
CVSS
7.8 (v3.1) CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
EPSS
0.15% probability of exploitation within 30 days · above 5% of all CVEs
Weakness
CWE-94
Sources
nvd
References

Type at least two characters.

navigate open esc dismiss