PHP Composer 命令注入漏洞允许供应链攻击
PHP Composer软件包的维护者已解决了一个严重漏洞,跟踪为CVE-2021-29472,该漏洞可能允许攻击者在每个PHP软件包中执行任意命令并建立后门。
Composer是管理和安装软件依赖项的主要工具,它使用在线服务Packagist来确定软件包下载的正确供应链。据估计,Packagist基础结构每月可处理约14亿次下载请求。
“请立即将Composer更新到版本2.0.13或 1.10.22(
composer.phar self-update
)。新版本包含SonarSource的Thomas Chauchefoin报告的命令注入安全漏洞(CVE-2021-29472)的修复。” 读取咨询通过SonarSource出版。*
SonarSource的研究人员发现了命令注入漏洞,并警告说该漏洞可能已经被利用来进行供应链攻击。
“在进行安全性研究期间,我们在 Packagist 使用的Composer的源代码中发现了一个严重漏洞 。它使我们能够在Packagist.org服务器上执行任意系统命令。” 读SonarSource发表的帖子,“这样一个中央组件中的一个漏洞每月可处理超过1亿个软件包元数据请求,因此产生了巨大影响,因为这种访问本来可以用来窃取维护者的凭据或将软件包下载重定向到第三方服务器提供后门依赖关系。”*
该问题已于4月22日报告,维护人员在不到12小时的时间内解决了该问题。
该漏洞源于根composer.json文件中存储库的URL的不正确清理以及程序包源下载URL,这些URL可能被解释为Composer执行的系统命令的选项。
根据发现此问题的研究人员的说法,该漏洞是在2011年11月引入的。
“仅此问题尚无法执行命令,因为这些值已适当地转义。在SonarSource的Thomas Chauchefoin的帮助下,通过Composer在整个Composer中固定了参数注入,方法是使用-分隔符将位置命令自变量与选项分隔开,例如hg clone-‘$ URL’而不是hg clone’$ URL’。” 继续咨询。
在此问题的时间表下方:
日期 | 行动 |
---|---|
2021-04-22 | 首次联系安全人员(packagist.org) |
2021-04-22 | 修补程序部署在packagist.org中 |
2021-04-26 | GitHub分配的CVE-2021-29472 |
2021-04-27 | 发布了Composer 1.10.22和2.0.13 |
