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

來源: iThome | 2026-06-01
URL: https://www.ithome.com.tw/news/176257
發布日期: 2026-06-01

關鍵數據

  • 30天內偵測到 80,119次 攻擊嘗試(截至5月11日)
  • 最近10天就有 36,543次,顯示攻擊加速趨勢
  • CVSS評分:9.8(Critical)
  • 漏洞揭露於 2017年,CISA於 2022年 納入KEV目錄

漏洞概要

項目內容
漏洞IDCVE-2017-9841
類型遠端程式碼執行(RCE)
影響版本PHPUnit < 4.8.28 / < 5.6.3
漏洞位置vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
身分驗證需求無需驗證

漏洞原理

eval-stdin.php 讀取 HTTP POST 請求內容並透過 eval() 執行,若該檔案暴露於公開網際網路,攻擊者可直接執行任意 PHP 程式碼。

為何舊漏洞仍持續被利用

  1. 部署流程疏失:PHPUnit 應列於 require-dev,並以 composer install --no-dev 排除,但部分 CI/CD 或除錯環境仍安裝開發套件,導致 vendor/ 目錄進入正式環境
  2. Web伺服器未封鎖:Apache/Nginx 未限制外部存取 vendor/phpunit/ 路徑
  3. 套件長期未更新:舊專案只要能正常運作,維護者往往不升級相依套件
  4. 攻擊門檻低:已有多個公開利用工具流通

建議修補措施

  • 盤點對外伺服器,確認是否存在 eval-stdin.php
  • 若發現該檔案在正式環境可公開存取,立即移除或封鎖
  • 正式部署流程改用 composer install --no-dev
  • 設定 Web 伺服器規則,禁止外部直接存取 vendor/ 目錄

衍生頁面