跳到主要內容區塊

計資中心電子報C&INC E-paper

技術論壇

PHP嚴重遠端程式碼執行漏洞CVE-2024-4577
  • 卷期:v0070
  • 出版日期:2024-09-20

作者:陳思蘊 / 臺灣大學計算機及資訊網路中心資訊網路組行政專員、李美雯 / 臺灣大學計算機及資訊網路中心資訊網路組程式設計師


前言

資安研究團隊DEVCORE於2024年6月6日通報PHP重大遠端程式碼執行漏洞(CVE-2024-4577),當時正值端午節連續假期前,且PHP為廣泛使用的開源程式語言,多個網站因此漏洞遭到加密勒索,導致此漏洞引發了大量的關注,並凸顯出網站防護為極嚴峻的挑戰。本文將介紹CVE-2024-4577漏洞的背景,並提供幾項日常防範攻擊的方法。

 

CVE-2024-4577漏洞背景

資安研究團隊DEVCORE於2024年6月6日通報CVE-2024-4577漏洞,因PHP程式語言在開發時未考慮到字元編碼轉換的特性,特別是在PHP的CGI模式下,利用了Windows作業系統上的「Best-Fit」功能,導致未經身分驗證的遠程攻擊者可透過特定的字元序列繞過原先CVE-2012-1823的防護,並透過參數注入攻擊在PHP伺服器上執行任意程式碼,即便PHP未設定為CGI模式,只要PHP的可執行檔(如:php.exe或php-cgi.exe)位於可存取的目錄中,該漏洞就可能被利用(參考資料[1])。

 

CVE-2024-4577漏洞影響範圍(Apache)

安裝於Windows作業系統上所有的PHP版本皆受此漏洞影響,詳細版本請參考以下說明。

  • PHP 8.3所有於8.3.8以前的版本
  • PHP 8.2所有於8.2.20以前的版本
  • PHP 8.1所有於8.1.29以前的版本

由於PHP 8.0分支版本、PHP 7以及PHP 5官方已不再提供更新,請網站管理者盡速評估升級版本或採取修補建議。

 

CVE-2024-4577漏洞影響範圍(XAMPP)

除了常見的Apache與PHP的組合,所有版本的XAMPP於Windows預設安裝時也遭受此弱點影響。

 

CVE-2024-4577漏洞修補建議

立刻備份並升級至PHP官方最新8.3.8、8.2.20與8.1.29版本,由於PHP CGI模式已經是一種過時且易於出現問題的架構,建議評估採用較為安全的Mod-PHP、FastCGI或PHP-FPM等架構,對於無法升級的系統可透過下列方式暫時緩解弱點。

  1. 無法立即更新至最新PHP版本

透過Rewrite規則阻擋攻擊,請注意此規則只作為繁體中文、簡體中文及日文語系中的暫時緩解機制,實務上仍建議更新至已修復版本或採用較安全的架構,如圖1。

 

20240920_007007_01

圖1、PHP 阻擋CVE-2024-4577漏洞Rewrite規則;圖片來源:DEVCORE

 

  1. 使用XAMPP的網站

若確認未使用到PHP CGI之功能,請至httpd-xampp.conf找到相對應的設定行數進行註解後儲存,如圖2。

 

20240920_007007_02

圖2、XAMPP註解PHP CGI之功能;圖片來源:DEVCORE

 

CVE-2024-4577漏洞災情

因漏洞通報當時正值端午節連續假期,許多網站來不及執行PHP版本更新或是採取其他防護措施,導致網站資料被加密並遭勒索0.1比特幣,相當於今日台幣匯率216,802.1元,如圖3所示。

 

20240920_007007_03

圖3、遭勒索加密的網站

 

日常防護攻擊的方法

面對層出不窮的駭客攻擊,本文提供以下幾點建議作為參考,加強網站的資安防護以避免成為加密勒索的目標。

  1. 確保網站之作業系統、軟體與使用套件更新至最新版本
    勒索組織通常利用系統漏洞進行攻擊,網站管理者應隨時確認作業系統、軟體與所使用套件是否更新至最新的穩定版本。
  2. 網站資料應定期執行快照或備份並儲存於安全的位置
    為了防範駭客攻擊並保障網站安全,網站應定期進行快照或備份,即使網站不幸遭到駭客加密,仍然可以透過還原備份資料恢復網站運作。
  3. 網站應定期執行弱點掃描,並修補已知漏洞
  4. ,即時修補已知漏洞預防系統遭駭客入侵。
  5. 啟用額外的防護機制
  6. Web Application Firewall)、端點偵測和回應機制(Endpoint Detection and Response)或防毒軟體,防護機制若偵測到疑似後門程式運作,立即跳出告警或終止連線。

 

參考資料

  1. DEVCORE:資安通報:PHP 遠端程式碼執行 (CVE-2024-4577) - PHP CGI 參數注入弱點。2024-06-06。網址:https://devco.re/blog/2024/06/06/security-alert-cve-2024-4577-php-cgi-argument-injection-vulnerability/