Severity by source
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Attacker-controlled file must be opened by the victim, so AV:L and UI:R; no auth needed (PR:N), low complexity, and code execution yields full C:H/I:H/A:H with no scope change.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Lifecycle Timeline
3DescriptionCVE.org
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.
AnalysisAI
Arbitrary Python code execution in scikit-hep uproot (uproot5) arises because the library dynamically generates and compiles reader classes from a ROOT file's TStreamerInfo records, interpolating file-controlled streamer metadata (such as streamer element names) into generated Python source without repr()/!r safe quoting. A crafted ROOT file can inject expression-breaking content that is evaluated in the process opening the file, giving code execution to whoever processes attacker-supplied ROOT data. Reported by VulnCheck; no public exploit identified at time of analysis, and it is not listed in CISA KEV.
Technical ContextAI
uproot is a pure-Python reader for the CERN ROOT columnar file format widely used in high-energy physics. To deserialize custom C++ classes stored in a ROOT file, uproot reads the embedded TStreamerInfo schema and synthesizes Python reader methods on the fly, then compiles them at runtime. The root cause is CWE-94 (Improper Control of Generation of Code / code injection): several f-strings in src/uproot/streamers.py (the class_code generator) and an eval() in identify.py embedded attacker-influenced metadata - streamer element names, count names, and field names - directly into generated source. Because these values originate entirely from the file rather than trusted code, and were not passed through repr() or escaped, a value containing quote characters or Python expressions breaks out of the intended string literal and executes.
RemediationAI
Upstream fix available (PR/commit); released patched version not independently confirmed - apply the vendor's patched release once identified, tracking GHSA-6946-mq52-g438 (https://github.com/scikit-hep/uproot5/security/advisories/GHSA-6946-mq52-g438) and the fix commit c045c2824295d907d2e705f31110c742928e50e7 which introduces a _sanitize_string() helper, switches generated error messages to the !r (repr) format specifier, and replaces eval() with ast.literal_eval() in identify.py. Until a tagged patched version is confirmed and deployed, do not open or process ROOT files from untrusted or externally-supplied sources with vulnerable uproot code paths; where files must be ingested, run uproot inside an isolated sandbox or unprivileged container with no network egress and minimal filesystem access so that any injected code cannot pivot (trade-off: added pipeline complexity and latency). Validate provenance of ROOT files (restrict to trusted producers) as a compensating control, accepting that this does not stop a compromised upstream producer. Cite the exact fixed version from the vendor advisory when patching; do not assume a version number not published by the vendor.
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 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
Cross-user flow execution in Langflow (< 1.9.1) lets any authenticated API-key holder run another user's flow by passing
Same weakness CWE-94 – Code Injection
View allSame technique Code Injection
View allVendor StatusVendor
SUSE
Severity: ImportantShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-45374
GHSA-98vv-9pqj-g87v