Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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 源代码时不安全。

查看仓库

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

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

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

CNA: VulnCheck

发布时间: 2026 年 7 月 18 日


摘要

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

某些由文件控制的 streamer 元数据字段在未进行安全转义的情况下被插入到生成的 Python 源代码中。能够提供特制 ROOT 文件的攻击者可以将可突破 Python 表达式的内容注入 streamer 元数据,例如精心构造的元素名称。

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

影响

攻击者可以在使用受影响 uproot 代码路径打开或处理攻击者控制的 ROOT 文件的应用程序中执行任意 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 方法,并验证标记文件证据。

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

root@kitploit:~
python -m venv .venv
.venv\Scripts\activate
python -m pip install -r requirements.txt
python -B run_poc.py

在存在漏洞的版本上预期得到的证据:

root@kitploit:~
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

该载荷特意设计为无害的。它只会写入以下本地标记字符串:

root@kitploit:~
executed through uproot generated read_members

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

修复措施

升级到 uproot 5.7.5 或更高版本。

如果无法立即升级:

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

披露时间线

日期事件
2026 年 5 月 20 日漏洞提交给 VulnCheck
2026 年 5 月 20 日VulnCheck 启动外联流程; 临时分配

致谢

由 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
下载工具
CVE-2026-9147
2026 年 7 月 5 日发布带补丁的 uproot 5.7.5
2026 年 7 月 18 日CVE-2026-9147 已发布