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 |