存在15年的Python漏洞影响35万个开源项目

由FireEye与McAfee Enterprise整合而成的安全企业Trellix本周警告,热门程序语言Python的Tarfile模块中含有一个15年前就被发现的安全漏洞CVE-2007-4559,当初这个风险等级只被列为6.8的目录遍历(Directory Traversal)漏洞并未被修补,然而,研究人员却发现它很轻易就可用来执行程序,估计波及超过35万个开源项目。

Tarfile为Python中的默认模块,因此,该漏洞广泛存在于任何使用Python的框架中,从Netflix、AWS、Intel、Google到Meta,或是各种与机器学习、自动化及容器化有关的应用程序,黑客只要上传一个由两到三行程序代码产生的恶意程序,就能允许黑客执行任意程序,或是控制目标设备。

Trellix的安全研究人员Kasimir Schulz指出,他们是在调查另一个漏洞时,无意间遇到CVE-2007-4559,原本以为它是个新的零时差安全漏洞,没想到是2007年就被披露的老旧漏洞;该在过去并未受到重视的漏洞,在大多数的状况下,却允许黑客借由写入文件而执行程序。

Trellix团队已成功攻陷了基于Python的Spyder IDE与Polemarch中的CVE-2007-4559漏洞。

为了估算CVE-2007-4559漏洞的规模,研究人员选出了257个最有可能含有该漏洞的存储库,发现其中有175个含有CVE-2007-4559,比例为61%,而在GitHub上的项目中,于Python程序代码中包含输入Tarfile的项目总计有588,840个,若以61%来计算,那么有超过35万个开源项目含有该漏洞,且该估计并未纳入封闭项目。

Trellix也打造了一个Python脚本程序Creosote来寻找CVE-2007-4559漏洞,该工具适用于Python 3.9及之后的版本,并同时支持Windows、Linux及macOS。