新供应链安全威胁,下载超四千万的 Python 库曝严重缺陷

安全
据ESET的2025年威胁报告显示,供应链攻击正以每年78%的速度增长。该漏洞突出了Python生态系统在平衡可用性和安全性方面面临的持续挑战。

Ghsa-wm×h-p×cx-9w24漏洞概述

近日,广泛使用的Python JSON Logger库中披露的一个漏洞通过依赖链缺陷,暴露了约4300万个安装面临潜在远程代码执行(RCE)攻击的风险。该漏洞编号为GHSA-wmxh-pxcx-9w24,CVSS v3严重程度评分为8.8/10,源于一个未注册的依赖项("msgspec-python313-pre"),攻击者可能利用它劫持软件包安装。

安全研究员Omnigodz发现,攻击者可能利用此漏洞在使用受影响版本(3.2.0和3.2.1)日志工具的系统中执行任意代码。维护者在研究员通过GitHub安全咨询程序负责任地披露问题后,发布了修复版本3.3.0。

依赖混淆攻击的典型案例

这一漏洞是典型的依赖混淆攻击案例,攻击者利用软件供应链中的漏洞进行攻击。Python JSON Logger的pyproject.toml配置文件包含一个名为msgspec-python313-pre的可选开发依赖项,用于Python 3.13兼容性。然而,原始维护者删除后,该软件包名称在PyPI上未注册,形成了命名空间真空。

Omnigodz的概念验证研究表明,任何PyPI用户都可以声明这个废弃的软件包名称并发布恶意代码。当开发者在Python 3.13环境中通过pip install python-json-logger[dev]安装日志工具的开发依赖项时,如果公共存储库中存在攻击者控制的msgspec-python313-pre,则包管理器会自动提取该恶意代码。

尽管根据PyPI的BigQuery指标,Python JSON Logger每月下载量超过4600万次,但这种攻击需要特定的条件:受害者使用Python 3.13并启用开发依赖项,这在CI/CD管道和开发者工作站中是常见配置。

值得注意的是,尽管一个月前项目源代码中已经提交了一个缓解提交(1ce81a3)删除了有问题的依赖项,但漏洞仍然存在。由于此修复未包含在官方的PyPI版本中,直到版本3.3.0,所有使用标准软件包管理工作流的安装仍然容易受到攻击。

缓解措施

Python JSON Logger维护者通过两项并行措施解决了该漏洞:

  • 发布了v3.3.0,完全消除了msgspec-python313-pre依赖项;
  • 与Omnigodz协调转移了争议软件包名称的所有权,有效防止了命名空间劫持。

安全团队建议立即使用pip install --upgrade python-json-logger==3.3.0升级至v3.3.0。无法立即更新的组织应审核其Python环境。

Omnigodz在其会议论文中指出:"开发人员必须将依赖项视为攻击面。特别是那些可选的依赖项,尽管具有完整的执行权限,但它们经常逃脱安全扫描器的检测。"

据ESET的2025年威胁报告显示,供应链攻击正以每年78%的速度增长。该漏洞突出了Python生态系统在平衡可用性和安全性方面面临的持续挑战。尽管尚未有任何数据泄露事件与此具体漏洞相关联,但其发现促使主要开源社区重新审视依赖管理实践。

责任编辑:赵宁宁 来源: FreeBuf
相关推荐

2023-02-23 07:52:20

2022-10-19 13:55:55

2023-03-02 15:52:33

2015-12-25 16:49:52

2023-11-02 12:13:08

2021-02-05 14:11:13

物联网工业物联网安全

2021-10-14 13:14:12

安全供应链漏洞威胁

2022-03-10 08:16:14

Kubernetes软件供应链

2020-01-14 14:25:56

供应链安全网络攻击

2023-10-19 10:43:38

2016-09-08 19:01:07

Docker内网安全软件供应链

2021-06-18 14:36:39

Google软件供应链安全框架

2021-04-02 14:27:30

区块链疫苗安全

2021-10-14 06:32:39

供应链威胁漏洞勒索软件

2017-01-23 11:18:16

戴尔

2018-02-07 05:06:41

2018-05-29 15:24:00

2015-12-09 14:47:13

2022-04-26 10:47:15

智能供应链供应链

2023-11-06 07:11:14

点赞
收藏

51CTO技术栈公众号