新泽西理工学院的隐藏一项研究揭露了Python软件包生态系统中潜藏的大规模安全隐患。这项名为"PyPitfall"的漏洞研究报告揭示,复杂且深度嵌套的通过软件包依赖关系正在数千个项目中无声传播已知安全漏洞。 "一个软件包中的超万传播漏洞可能通过其依赖关系传播,最终影响下游软件包和应用程序 ,个软"研究人员警告称。隐藏 Python作为最流行编程语言的亿华云漏洞地位,很大程度上得益于PyPI(Python Package Index)托管的通过海量开源库生态系统。目前PyPI拥有超过62.7万个软件包和600多万个版本
,超万传播开发者往往在引入功能时并未意识到随之而来的个软安全隐患 。 PyPitfall研究分析了378,隐藏573个软件包的依赖关系,发现: 研究凸显了PyPI生态系统的通过极端复杂性,包括存在超过20层传递依赖的超万传播软件包,以及100多万个循环依赖
。个软典型案例是square-0-5软件包 ,经过75次递归跳转后竟然依赖于自身,导致pip install命令陷入无限循环 。 "依赖链可能极其漫长复杂,单个软件包可能依赖数百个其他组件,源码库形成深不可测的软件供应链迷宫 。" 这种深度嵌套的关系往往掩盖了漏洞组件的存在
,使其在广泛传播的同时保持隐蔽
。 研究团队使用Johnnydep工具对PyPI软件包进行模拟安装,在不实际安装的情况下收集依赖树数据。随后将其与67个精选CVE漏洞数据库进行交叉比对,源码下载仅关注影响PyPI托管库的漏洞。 这种方法帮助他们在urllib3等广泛使用的软件包中发现严重漏洞——仅该组件就占所有"必然暴露"案例的41.4%
。作为Python HTTP栈的核心组件和requests库的依赖项,urllib3的漏洞影响尤为突出: 改进建议
: 研究团队已向Python打包管理局披露发现,强调解决Python开源生态系统这一系统性风险的紧迫性 。报告总结称:"我们的云计算发现凸显了提升Python软件供应链安全意识的必要性。"