PHP Composer命令注入漏洞(CVE-2021-29472)

發布時間 2021-04-30

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/

image.png