Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-9147-uproot-rce — uproot <= 5.7.4 代码注入漏洞,源于从 ROOT TStreamerInfo 元数据生成 Python 源代码时不安全。 | Kitploit
工具/GitHubGitHub/saiteja-erukude/cve-2026-9147-uproot-rce
Payload生成漏洞分析漏洞利用
GitHubsaiteja-erukude/cve-2026-9147-uproot-rce

CVE-2026-9147-uproot-rce

uproot <= 5.7.4 代码注入漏洞,源于从 ROOT TStreamerInfo 元数据生成 Python 源代码时不安全。

查看仓库

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
2610天前尚未审核

CVE-2026-9147:通过 TStreamerInfo 元数据触发的 uproot 代码注入

严重程度: 高,CVSS 4.0 8.5,CVSS 3.1 7.8(由 CNA 机构 VulnCheck 评定)

向量(v4.0): 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

向量(v3.1): CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

受影响版本: uproot <= 5.7.4

修复版本: 5.7.5 / 提交 c045c28

CWE: CWE-94(代码生成控制不当,代码注入);次要 CWE-95(Eval 注入)

发现并报告者: Sai Teja Erukude

发布日期: 2026 年 7 月 18 日


摘要

uproot 5.7.4 及更早版本会根据 ROOT TStreamerInfo 元数据动态生成 Python 类源代码,并在运行时编译。

部分由文件控制的 streamer 元数据字段在未进行安全引号处理的情况下被插入到生成的 Python 源代码中。能够提供特制 ROOT 文件的攻击者可以将破坏 Python 表达式的注入内容(例如特制的元素名称)注入到 streamer 元数据中。

当受影响的应用程序打开特制的 ROOT 文件,且 uproot 生成并调用相应的读取方法时,注入的 Python 表达式可在宿主进程的上下文中执行。

影响

在打开或处理攻击者控制的 ROOT 文件、且使用受影响 uproot 代码路径的应用程序中,攻击者可能执行任意 Python 代码。

视应用程序而定,这可能允许:

  • 读取或修改进程可访问的文件。
  • 访问环境变量和应用程序机密。
  • 调用可从主机访问的内部服务。
  • 干扰数据处理作业或应用程序行为。

技术细节

该问题位于 uproot 针对 ROOT streamer 元数据的生成源代码路径中。

PoC 创建了一个 ROOT 文件,其中包含针对 ExploitTarget 类的特制 TStreamerInfo 元数据。特制的 streamer 元素名称突破了生成的表达式,并注入了一个无害的 pathlib 调用。

报告的行为如下:

  1. uproot 打开特制的 ROOT 文件。
  2. uproot 读取由文件支持的 TStreamerInfo 元数据。
  3. uproot 为 ExploitTarget 生成 Python 类源代码。
  4. 生成的类源代码包含注入的表达式。
  5. 调用生成的 read_members 方法会执行注入的表达式。

概念验证

root_file_builder.py 创建带有特制 streamer 元数据的 malicious_tstreamerinfo.root。

run_poc.py 使用 uproot 打开该文件,强制生成由文件支持的 ExploitTarget 类,调用生成的 read_members 方法,并验证标记文件证据。

仅在本地测试环境中运行:

python -m venv .venv
.venv\Scripts\activate
python -m pip install -r requirements.txt
python -B run_poc.py

在易受攻击版本上预期的证据:

uproot_version: 5.7.4
file_backed_element_name_contains_payload: True
class_code_contains_injected_pathlib_call: True
expected_exception: True
exception_type: DeserializationError
marker_exists: True
marker_contents:
executed through uproot generated read_members
success: True

该载荷有意保持无害。它只会写入这个本地标记字符串:

executed through uproot generated read_members

它不会启动 shell、连接网络服务、读取机密、删除数据,也不会修改 PoC 目录之外的文件。

修复措施

升级到 uproot 5.7.5 或更高版本。

如果无法立即升级:

  • 不要处理来自不受信任用户的 ROOT 文件。
  • 以最小权限隔离 ROOT 文件处理任务。
  • 在处理前验证或拒绝意外的 TStreamerInfo 元数据。
  • 避免使用会自动打开上传或外部提供的 ROOT 文件的工作流。

披露时间线

日期事件
2026 年 5 月 20 日漏洞提交至 VulnCheck
2026 年 5 月 20 日VulnCheck 启动外联;CVE-2026-9147 被临时分配
2026 年 7 月 5 日uproot 5.7.5 发布并包含补丁
2026 年 7 月 18 日CVE-2026-9147 发布

致谢

由 Sai Teja Erukude 发现并报告。

披露工作通过 VulnCheck 协调完成。

参考资料

  • CVE 记录:https://www.cve.org/CVERecord?id=CVE-2026-9147
  • NVD:https://nvd.nist.gov/vuln/detail/CVE-2026-9147
  • VulnCheck 公告:https://www.vulncheck.com/advisories/uproot-and-before-code-injection-via-tstreamerinfo-metadata
  • GitHub 公告:https://github.com/scikit-hep/uproot5/security/advisories/GHSA-6946-mq52-g438
  • 补丁提交:https://github.com/scikit-hep/uproot5/commit/c045c2824295d907d2e705f31110c742928e50e7
  • uproot 项目:https://github.com/scikit-hep/uproot5
下载工具