社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

下载超4千万的Python库曝严重缺陷

FreeBuf • 6 天前 • 37 次点击  


近日,广泛使用的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粉丝交流群招新啦!
在这里,拓宽网安边界
甲方安全建设干货;
乙方最新技术理念;
全球最新的网络安全资讯;
群内不定期开启各种抽奖活动;
FreeBuf盲盒、大象公仔......
扫码添加小蜜蜂微信回复「加群」,申请加入群聊】

图片

图片





图片

图片

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/179960
 
37 次点击