漏洞详情
摘要
Picklescan 使用了 numpy.f2py.crackfortran.myeval 函数,该函数是 NumPy 中用于执行远程 pickle 文件的函数。
详情 攻击载荷通过以下步骤执行:
- 首先,攻击者在其
__reduce__方法中调用numpy.f2py.crackfortran.myeval函数来构造攻击载荷。 - 然后,当受害者使用 Picklescan 库检查 pickle 文件是否安全,而该库未检测到任何危险函数时,受害者可能会对该恶意 pickle 文件使用
pickle.load(),从而导致远程代码执行。
概念验证代码
|
|
影响
- 任何依赖 picklescan 来检测 PyTorch 模型内部恶意 pickle 文件的组织或个人都会受到影响。
- 攻击者可以在 pickle 文件中嵌入恶意代码,这些代码在 pickle 文件被加载时执行,但不会被检测到。
- 攻击者可以通过 ML 模型、API 或保存的 Python 对象分发受感染的 pickle 文件。
报告者
- 来自清华大学网络与信息安全实验室 (NISL, https://netsec.ccert.edu.cn/about) 的 Pinji Chen (cpj24@mails.tsinghua.edu.cn)。
- Guanheng Liu (coolwind326@gmail.com)。
参考链接
- GHSA-3329-ghmp-jmv5
- mmaitre314/picklescan#53
- mmaitre314/picklescan@70c1c6c
技术信息
受影响的包
- pip 包:
picklescan
受影响版本
< 0.0.33
已修复版本
0.0.33
严重等级
- 高
- CVSS 总体评分: 7.4 / 10
CVSS v4 基础指标
- 攻击向量: 网络
- 攻击复杂度: 低
- 攻击要求: 无
- 所需权限: 无
- 用户交互: 被动
- 漏洞系统影响指标:
- 机密性: 高
- 完整性: 高
- 可用性: 高
- 后续系统影响指标:
- 机密性: 无
- 完整性: 无
- 可用性: 无
弱点
- CWE-94: 对代码生成的管控不当(‘代码注入’)
- 产品使用来自上游组件的受外部影响的输入来构建全部或部分代码段,但未能消除或错误地消除了可能修改预期代码段语法或行为的特殊元素。
标识符
- GHSA ID: GHSA-3329-ghmp-jmv5
- CVE ID: 暂无已知 CVE
源代码仓库
- mmaitre314/picklescan
时间线
- 发布到 mmaitre314/picklescan: 2025年12月27日
- 发布到 GitHub 咨询数据库: 2025年12月29日
- 已审核: 2025年12月29日