根据芬兰研究人员的分析,官方 Python 包索引 (PyPI) 存储库中近一半的包至少存在一个安全问题。研究人员使用静态分析来发现开源软件包中的安全问题,他们认为这些问题最终会污染使用它们的软件。研究总共扫描了 197,000 个包,总共发现了超过 749,000 个安全问题。研究人员在他们的论文中指出:“有了这些结果和伴随的讨论,这篇论文有助于大规模实证研究领域,以更好地理解软件生态系统中的安全问题。”研究人员在解释他们的方法时指出,尽管静态分析存在固有的局限性,但他们仍然在存储库中大约 46% 的包中发现了至少一个安全问题。该论文显示,在已识别的问题中,最多 (442,373) 个属于低严重性问题,而 227,426 个属于中等严重性问题。然而,11% 的被标记的 PyPI 包有 80,065 个高严重性问题。在问题类型方面,异常处理和不同的代码注入被发现是最普遍的。
研究人员指出:“在所有包中至少有一个问题的 46% 中,问题的中位数是三个。”当然,它不是均匀分布的,其中有几个包有很多问题,其中五个包被发现有超过一千个问题。研究人员有理由担心。 PyPI 一直处于使用恶意包毒害存储库的多个活动的接收端。今年 6 月初,PyPI 清除了六个包含加密恶意软件的域名抢注包,而在此之前一个月,存储库中充斥着垃圾邮件包。