最新消息:本站介绍:国外VPS、云服务器,海外服务器,一手资源推荐平台

未修补15年前的Python漏洞允许在350k项目中执行代码

网络安全 快米云 来源:快米云 123浏览

未修补 15 年前的 Python 漏洞允许在 350k 项目中执行代码

Python 编程语言中一个被忽视了 15 年的漏洞现在重新成为人们关注的焦点,因为它可能会影响超过 350,000 个开源存储库并可能导致代码执行。

该安全问题于 2007 年披露并标记为 CVE-2007-4559,从未收到补丁,唯一提供的缓解措施是警告开发人员有关风险的文档更新。

自 2007 年以来未修补

该漏洞位于 Python  tarfile 包中,在使用未经处理的 tarfile.extract() 函数或 tarfile.extractall() 的内置默认值的代码中。这是一个路径遍历漏洞,使攻击者能够覆盖任意文件。

自 2007 年 8 月首次报告以来,CVE-2007-4559 的技术详细信息已经可用  。虽然没有关于攻击中利用该漏洞的报告,但它代表了软件供应链中的风险。

今年早些时候,在调查另一个安全问题时,Trellix 的一名研究人员重新发现了 CVE-2007-4559,Trellix 是一家提供扩展检测和响应 (XDR) 解决方案的新企业,由  McAfee Enterprise 和 FireEye合并而成。

“在调用 tarfile.extract() tarfile.extractall() 之前未能编写任何安全代码来清理成员文件会导致目录遍历漏洞,从而使不良行为者能够访问文件系统” – Charles McFarland,漏洞研究员Trellix 高级威胁研究团队

该缺陷源于  Python 的 tarfile模块中的extract函数中的代码 明确信任 TarInfo 对象中的信息“并加入了传递给 extract 函数的路径和 TarInfo 对象中的名称”

CVE-2007-4559 - 使用文件名连接的路径
CVE-2007-4559 – 与文件名
来源连接的路径:Trellix

披露后不到一周,  Python 错误跟踪器上的一条消息 宣布该问题已关闭,修复正在更新文档并警告“从不受信任的来源提取档案可能很危险”。

估计有 350,000 个项目受到影响 

通过分析影响,Trellix 研究人员发现该漏洞存在于数千个开源和闭源软件项目中。

研究人员抓取了一组 257 个更有可能包含易受攻击代码的存储库,并手动检查了其中的 175 个以查看它们是否受到影响。这表明其中 61% 的人很脆弱。

对其余存储库运行自动检查将受影响的项目数量增加到 65%,这表明存在广泛的问题。

然而,这个小样本集仅作为估算 GitHub 上所有受影响的存储库的基准。

“在 GitHub 的帮助下,我们能够获得一个更大的数据集,其中包含 588,840 个独特的存储库,其中包含在其 python 代码中的 ‘import tarfile’” – Charles McFarland

使用手动验证的 61% 的漏洞率,Trellix 估计有超过 350,000 个易受攻击的存储库,其中许多用于帮助开发人员更快地完成项目的机器学习工具(例如 GitHub Copilot)。

这种自动化工具依赖于来自数十万个存储库的代码来提供“自动完成”选项。如果他们提供不安全的代码,问题就会在开发人员不知情的情况下传播到其他项目。

​​​​​​​GitHub Copilot 提示易受攻击的 tarfile 提取代码
GitHub Copilot 建议易受攻击的tarfile提取代码
源:Trellix

进一步研究该问题,Trellix 发现易受 CVE-2007-4559 攻击的开源代码“跨越了众多行业”。

正如预期的那样,受影响最大的是开发部门,其次是网络和机器学习技术。

跨行业存在的易受 CVE-2007-4559 影响的代码
跨行业存在的易受 CVE-2007-4559 影响的
代码来源:Trellix

利用 CVE-2007-4559

在今天的一篇技术博客文章中,重新发现该漏洞的 Trellix 漏洞研究员 Kasimir Schulz 描述了在 Windows 版本的 Spyder IDE(一种用于科学编程的开源跨平台集成开发环境)中利用 CVE-2007-4559 的简单步骤.

研究人员表明,该漏洞也可以在 Linux 上利用。他们设法在 Polemarch IT 基础设施管理服务的测试中升级文件写入并实现代码执行。

除了引起对漏洞及其带来的风险的关注外,Trellix 还为超过 11,000 个项目创建了补丁。修复程序将在受影响的存储库的分叉中提供。稍后,它们将通过拉取请求添加到主项目中。

由于受影响的存储库数量众多,研究人员预计未来几周将有超过 70,000 个项目得到修复。然而,达到 100% 的目标是一项艰巨的挑战,因为维护者也需要接受合并请求。

ZZQIDC已联系 Python 软件基金会就 CVE-2007-4559 发表评论,但在发布时尚未收到答复。

转载请注明:VPS资讯_海外云服务器资讯_海外服务器资讯_IDC新闻 » 未修补15年前的Python漏洞允许在350k项目中执行代码