【外评】严重 PHP 漏洞使服务器面临远程代码执行风险
内容提要
DEVCORE在PHP中发现了一个严重的远程代码执行漏洞,影响到Windows系统上所有版本的PHP语言。该漏洞已于2024年6月6日得到修补。漏洞允许未经认证的攻击者使用特定字符序列绕过现有保护,从而在受影响的服务器上执行任意代码。受影响的PHP版本包括8.3以下的PHP 8.3版本、8.2以下的PHP 8.2版本和8.1以下的PHP 8.1版本。强烈建议升级到最新的PHP版本,对于无法立即升级的系统,可以实施特定的Apache重写规则来阻止攻击向量。
延伸解读
漏洞影响范围与风险等级
该漏洞影响Windows系统上所有版本的PHP,但特定版本分支风险更高。受影响的版本包括8.3.8以下的PHP 8.3、8.2.20以下的PHP 8.2和8.1.29以下的PHP 8.1。此外,已报废的PHP 8.0、7.x和5.x分支不再维护,运行这些版本的系统风险更大。在CGI模式下运行PHP或暴露PHP二进制文件的服务器尤其危险,例如Apache配置中将HTTP请求映射到PHP-CGI可执行文件,或使用默认暴露PHP可执行二进制文件的XAMPP for Windows。
漏洞利用条件与本地化影响
漏洞利用需要特定字符序列绕过现有保护(CVE-2012-1823),允许未经认证的攻击者执行任意代码。DEVCORE已在繁体中文(代码页950)、简体中文(代码页936)和日文(代码页932)的Windows本地语言中验证了可利用性。对于其他本地语言,如英语、韩语和西欧语,由于PHP使用场景多样,建议进行全面的资产评估。这意味着使用这些语言环境的系统可能同样面临风险,需引起重视。
修复与缓解措施要点
官方已发布补丁,强烈建议升级到最新PHP版本(8.3.8、8.2.20、8.1.29)。若无法立即升级,可实施特定的Apache重写规则来阻止攻击向量,尤其是在已识别为易受攻击的本地。对于XAMPP for Windows用户,注释掉Apache配置文件中的ScriptAlias /php-cgi/”C:/xampp/php/”行可减少暴露。服务器管理员应彻底检查PHP配置,并评估迁移到更安全的执行架构,如Mod-PHP、FastCGI或PHP-FPM。
Q&A
这个PHP漏洞的影响范围是什么?
该漏洞影响Windows系统上所有版本的PHP,特别是8.3.8以下、8.2.20以下和8.1.29以下的版本。
如何修复这个PHP漏洞?
强烈建议升级到最新的PHP版本(8.3.8、8.2.20、8.1.29),或实施特定的Apache重写规则以阻止攻击。
这个漏洞是如何被发现的?
DEVCORE在检查PHP与Windows编码转换功能的集成时发现了这个漏洞,并于2024年5月7日报告给PHP官方团队。
使用XAMPP的用户应该如何应对这个漏洞?
使用XAMPP for Windows的用户应注释掉Apache配置文件中的特定行,以减少漏洞的暴露。
这个漏洞的追踪编号是什么?
该漏洞被追踪为CVE-2024-4577。
哪些PHP版本已经不再维护,增加了风险?
较早的PHP分支(8.0、7.x、5.x)已经报废,未得到维护,增加了风险。