[ English Version ]
PHP 小组发现 PHP 4.2.0 和 4.2.1 版本中存在一个严重的安全性漏洞。攻击者可以利用此漏洞以运行 Web 服务器相同权限执行任意代码。此漏洞可能被用来破坏 Web 服务器,并在某些情况下获得特权。
PHP 包含细致解析 HTTP POST 请求头的代码。此代码用于区分浏览器使用“multipart/form-data”编码发送的变量和文件。此解析器对输入数据检查不足,从而导致此漏洞。
任何可以向使用 PHP 4.2.0 和 4.2.1 版本的 Web 服务器发送 HTTP POST 请求的人都可以利用此漏洞。本地或远程用户,即使在防火墙之后,也可能获得对机器的未授权访问。
本地和远程用户都可以利用此漏洞来破坏 Web 服务器,并在某些情况下获得未授权访问。到目前为止,只有 IA32 平台能够通过安全测试。此漏洞可以在 IA32 上用来使 PHP 崩溃,并且在大多数情况下会使 Web 服务器崩溃。
PHP 小组发布了新的 PHP 4.2.2 版本,其中包含此漏洞的修复程序。建议所有使用受影响 PHP 版本的用户升级到此新版本。下载地址:https://php.net/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 小组感谢 e-matters GmbH 的 Stefan Esser 发现此漏洞。