[ 英文版 ]
PHP 開發團隊已注意到 PHP 4.2.0 和 4.2.1 版存在一個嚴重的安全漏洞。入侵者可以利用此漏洞在伺服器上執行任意程式碼,並擁有與執行網頁伺服器相同的權限。這個漏洞可能被用來入侵網頁伺服器,在某些情況下,甚至可能取得特殊權限。
PHP 包含用於解析 HTTP POST 請求標頭的程式碼。該程式碼用於區分瀏覽器以 "multipart/form-data" 編碼方式傳送的變數和檔案。這個解析器對輸入資料的檢查不夠嚴謹,導致了這個漏洞。
任何可以向使用 PHP 4.2.0 和 4.2.1 版的網頁伺服器傳送 HTTP POST 請求的人都可以利用此漏洞。本地或遠端使用者,即使在防火牆後面,也可能在機器上獲得未經授權的權限。
本地和遠端使用者皆可能利用此漏洞入侵網頁伺服器,並在某些情況下取得非授權的權限。目前僅 IA32 平台通過安全測試。此漏洞在 IA32 平台上可能導致 PHP 程式當機,大多數情況下也會造成網頁伺服器當機。
PHP Group 已釋出新的 PHP 版本 4.2.2,其中包含針對此漏洞的修復程式。強烈建議所有受影響 PHP 版本的使用者升級到此新版本。下載網址為:https://php.net.tw/downloads.php,提供原始碼 (tarballs)、Windows 可執行檔,以及 4.2.0 和 4.2.1 版本的原始碼更新檔。
如果在受影響的伺服器上,PHP 應用程式未使用 POST 方法,則可以簡單地禁止伺服器上的 POST 請求。
例如,在 Apache 中,可以在主設定檔或放置在根目錄附近的 .htaccess 檔案中使用以下程式碼:
<Limit POST> Order deny,allow Deny from all </Limit>
請注意,其他設定或/及帶有某些參數的 .htaccess 檔案可能會抵消上述範例的效果。
PHP Group 感謝 e-matters GmbH 的 Stefan Esser 發現此漏洞。