<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Uproot - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/uproot/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Sat, 18 Jul 2026 13:18:30 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/uproot/feed.xml" rel="self" type="application/rss+xml"/><item><title>Arbitrary Code Execution in uproot via Crafted ROOT Files (CVE-2026-9147)</title><link>https://feed.craftedsignal.io/briefs/2026-07-uproot-rce/</link><pubDate>Sat, 18 Jul 2026 13:18:30 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-07-uproot-rce/</guid><description>A vulnerability, CVE-2026-9147, in the uproot library allows arbitrary Python code execution when processing crafted ROOT files due to improper handling of streamer metadata fields during dynamic code generation, impacting applications that open or process untrusted ROOT files.</description><content:encoded><![CDATA[<p>A critical vulnerability, tracked as CVE-2026-9147, has been identified in the <code>uproot</code> Python library, which is used for reading and writing ROOT files. <code>uproot</code> dynamically generates and compiles Python class source code at runtime from ROOT <code>TStreamerInfo</code> records found within these files. The vulnerability arises because certain file-controlled streamer metadata fields, such as streamer element names, are directly interpolated into the generated Python source code without proper safe quoting mechanisms like <code>repr()</code> or the <code>!r</code> format specifier. An attacker can exploit this by crafting a malicious ROOT file containing Python expression-breaking content within a streamer metadata field. When an application utilizes <code>uproot</code> to open or process such a file, the injected Python expression is evaluated in the context of the running process, leading to arbitrary Python code execution. This poses a significant risk to applications that process untrusted ROOT files, enabling attackers to fully compromise the host system.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker crafts a malicious ROOT file containing specially malformed <code>TStreamerInfo</code> records.</li>
<li>Within these <code>TStreamerInfo</code> records, the attacker embeds Python expression-breaking content into streamer metadata fields, such as streamer element names.</li>
<li>The attacker delivers this crafted ROOT file to a victim, potentially through email, download, or by placing it in a shared repository.</li>
<li>A victim's application, which uses the <code>uproot</code> library, attempts to open or process the malicious ROOT file.</li>
<li><code>uproot</code> dynamically generates Python class source code based on the <code>TStreamerInfo</code> records, interpolating the attacker-controlled metadata fields directly into the source.</li>
<li>Due to the lack of safe quoting, the injected Python expression-breaking content becomes part of the generated Python code.</li>
<li><code>uproot</code> compiles and invokes the corresponding reader method, causing the injected Python expression to be evaluated.</li>
<li>Arbitrary Python code is executed on the victim's system with the privileges of the affected application, leading to full system compromise or data exfiltration.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of CVE-2026-9147 results in arbitrary Python code execution on the system processing the malicious ROOT file. This allows an attacker to take complete control of the affected application and potentially the underlying operating system. The specific damage could range from data theft and modification to the installation of additional malware, remote access tools, or complete system compromise. Organizations processing ROOT files from untrusted sources, particularly in scientific research, data analysis, or high-energy physics domains, are at risk. No specific victim counts or targeted sectors are provided, but any application using <code>uproot</code> to handle external ROOT files is potentially vulnerable.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Patch CVE-2026-9147 by upgrading the <code>uproot</code> library to a version that addresses this vulnerability immediately across all affected systems.</li>
<li>Implement strict validation and sanitization for all ROOT files ingested from untrusted or external sources to prevent the processing of malicious content.</li>
<li>Reduce the attack surface by limiting the types of files applications can process and ensuring <code>uproot</code>-using applications run with the least necessary privileges.</li>
<li>Monitor process creation logs for unusual Python script executions originating from applications that typically process data files, which could indicate exploitation of CVE-2026-9147.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>vulnerability</category><category>rce</category><category>python</category><category>code-execution</category></item></channel></rss>