修補:Windows

Windows 上最常漏掉的不是官方安裝的那一份 PHP,而是 IIS 設定、XAMPP 這類整合包或廠商軟體自己帶的 php-cgi.exe。

1. 檢查

盤點每一份 PHP。 除了你自己安裝的 PHP,也要找:

  • IIS 透過 FastCGI 掛上的 php-cgi.exe(看 IIS 的處理常式對應指向哪一個路徑)。
  • XAMPP 這類整合包,以及廠商軟體、設備管理介面內建的 php.exe、php-cgi.exe(ICSDA 點名的盤點範圍)。

對每一個找到的執行檔查版本,例如在它所在的資料夾執行:

查這一份 PHP 的版本
php -v

php-cgi 也是 2024 年 CVE-2024-4577 的現場。當年的修補不會讓這次的洞消失,兩個 CVE 都要出現在資產清單上。

2. 更新

  • 自行安裝的 PHP:從 windows.php.net 下載官方修補版的 zip。查詢時 releases 目錄已有 8.5.12、8.4.27、8.3.36、8.2.35,並有 NTS、x86、x64 版本;請選和你現在相同的執行緒安全類型與架構。目錄本身沒有安裝指令,依你原本的部署方式替換。
  • XAMPP 等整合包、廠商軟體:PHP 是包在產品裡的,要等該產品發布含修補的版本,或依廠商指示替換。本站沒有找到這些產品針對這次的公告,狀態待查證,請直接問廠商要「已含 PHP 修補版」的明確回覆。
  • 8.1 以前:官方沒有新的 Windows binary,見舊版本策略。

3. 重啟

替換執行檔後,重啟使用它的服務:IIS 的應用程式集區或整個 IIS、Apache 服務,或該產品的服務,確認舊的 php-cgi.exe 行程都已結束。

4. 驗證

  • 對每一個盤點到的執行檔再跑一次 php -v,確認版本達到修補版。
  • 確認 IIS 或整合包實際指向的是新的那一份,不是旁邊另一個舊資料夾。
  • Huntress 提醒留意 php-cgi.exe 衍生出 cmd、powershell、certutil.exe 這類子行程,見偵測與應變。

來源

查詢日期:。官方公告優先列出;內容如與 PHP 官方公告不一致,以官方公告為準。