Skip to main content

PHPUnit 9年前舊漏洞CVE-2017-9841持續遭濫用,30天內偵測逾8萬次攻擊嘗試

Posted in 業界新聞
新聞

CVE-2017-9841的CVSS風險分數為9.8,屬於Critical(重大)風險,影響PHPUnit早於4.8.28版與早於5.6.3版的版本。漏洞位於PHPUnit舊版測試工具中的eval-stdin.php,該檔案原本供測試使用,內含可讀取HTTP POST請求內容,並交由PHP函式eval()執行的程式碼。一旦eval-stdin.php檔案被部署到正式環境,且能由網際網路直接存取,攻擊者不需通過身分驗證,就能在伺服器端執行任意PHP程式碼。

VulnCheck指出,CVE-2017-9841早在2017年即已修補,CISA也已在2022年將其納入已知遭利用漏洞(KEV)目錄,但這項漏洞至今仍持續遭濫用。問題並非漏洞本身出現新變化,而是受影響的PHPUnit檔案仍常被部署到正式環境,並暴露於公開網際網路。

VulnCheck分析,PHPUnit通常是PHP專案在開發與測試階段透過Composer安裝的相依套件,原本應列在require-dev,並在正式環境部署時透過composer install --no-dev排除。然而,部分CI/CD流程或除錯環境仍會安裝開發用相依套件,使vendor/目錄與eval-stdin.php檔案一併進入正式環境。若Apache或Nginx等網頁伺服器未封鎖外部存取vendor/phpunit/路徑,攻擊者就能透過可預測的URL探測該檔案。

此外,部分舊有PHP專案長期未更新相依套件,只要應用程式仍能正常運作,維護者就可能沒有升級PHPUnit版本。再加上CVE-2017-9841已有多個公開利用工具,攻擊門檻低,也讓這項舊漏洞持續成為攻擊者鎖定的目標。

研究人員建議,使用PHP應用程式的組織應先盤點對外伺服器,確認是否仍存在eval-stdin.php檔案;若發現該檔案出現在可公開存取的正式環境,應立即移除或阻擋外部存取。企業也應確認正式環境部署流程已排除開發用相依套件,並避免讓vendor/目錄可由外部直接存取。

View original 0 Likes 0 Boosts

Comments (0)

No comments yet.