信息安全
PHP Composer命令注入漏洞(CVE-2021-29472)
发布时间:2021-05-05阅读次数:

0x00漏洞概述

CVE ID

CVE-2021-29472

时 间

2021-04-30

类 型

命令注入

等 级

高危

远程利用

影响范围

Composer < 1.10.22 || >=2.0,<2.0.13

PoC/EXP

未公开

在野利用

0x01漏洞详情

image.png

2021年04月27日,PHP Composer软件包发布了Composer 1.10.22和2.0.13版本,修复了PHP Composer中的一个命令注入漏洞(CVE-2021-29472),该漏洞的CVSSv3基本得分为8.8,攻击者可以通过利用此漏洞执行任意命令并在开发环境中创建后门,以进行供应链攻击。

漏洞细节

Composer是PHP的一个依赖管理器工具,它使用在线服务Packagist来确定软件包下载的正确供应链。据估计,Packagist基础设施每月大约为14亿个下载请求提供服务。

由于Root composer.json文件中的Mercurial库的URL和包源下载的URL没有被正确清理,这将导致攻击者注入的参数被解释为Composer执行的系统命令的选项。如果系统中安装了hg/Mercurial,则恶意制作的URL值将导致代码在HgDriver中被执行。

但由于composer.json文件通常在用户自己的控制之下,因此对Composer用户的直接影响是有限的。而源下载URL只能由用户明确信任的第三方Composer仓库提供,以下载和执行源代码,例如Composer插件。

该漏洞主要影响是将用户输入传递给Composer的服务,包括Packagist.org和Private Packagist,并导致远程代码执行。

在收到漏洞报告后的12小时内,Packagist.org和Private Packagist已经修复了该漏洞,并且通过日志审查,暂未发现该漏洞被利用。使用VcsRepository/VcsDriver或二次开发的应用可能受到此漏洞的影响,应立即升级其composer依赖关系。

0x02处置建议

目前此漏洞已经修复,建议升级到Composer 1.10.22或2.0.13。

下载链接:

https://getcomposer.org/

0x03参考链接

https://blog.sonarsource.com/php-supply-chain-attack-on-composer

https://blog.packagist.com/composer-command-injection-vulnerability/

https://github.com/composer/composer/security/advisories/GHSA-h5h8-pc6h-jvvx

https://securityaffairs.co/wordpress/117366/security/php-composer-flaw.html?

0x04时间线

2021-04-27 漏洞公开

2021-04-30 VSRC发布安全通告

0x05附录

CVSS评分标准官网:http://www.first.org/cvss/

来源:https://www.venustech.com.cn/new_type/aqtg/20210430/22650.html