PHP CGI Windows平台远程代码执行漏洞(CVE-2024-4577)通告
内容提要
绿盟科技CERT监测到了PHP CGI Windows平台远程代码执行漏洞(CVE-2024-4577),影响使用CGI模式运行PHP的Windows平台,攻击者可通过参数注入远程执行任意代码。受影响的版本包括PHP 8.3 < 8.3.8、PHP 8.2 < 8.2.20和PHP 8.1 < 8.1.29。官方已发布修复补丁,请尽快升级版本。
延伸解读
漏洞触发条件与影响范围
该漏洞仅影响在Windows平台以CGI模式运行PHP,且系统使用简体中文(936)、繁体中文(950)或日文(932)等语系的场景。攻击者无需认证即可通过参数注入绕过CVE-2012-1823补丁,远程执行任意代码。受影响版本为PHP 8.3 < 8.3.8、8.2 < 8.2.20、8.1 < 8.1.29。若您的环境不满足上述条件,则不受影响。
临时缓解措施的有效性与局限
若无法立即升级,可采取临时措施:未使用PHP-CGI时关闭CGI功能;对使用特定语系的用户,可添加重写规则拦截恶意查询字符串(如RewriteCond %{QUERY_STRING} ^%ad [NC])。XAMPP用户可注释掉httpd-xampp.conf中的ScriptAlias /php-cgi/行。但公告强调,这些措施仅为临时防护,仍建议升级到安全版本或迁移架构。
版本检测与升级建议
用户可通过命令'php -v'查看当前PHP版本,判断是否在受影响范围内。官方已发布修复版本:PHP 8.3.8、8.2.20、8.1.29,建议尽快从官方下载链接升级。注意PHP 8、7、5等分支已终止维护,不再提供安全更新,继续使用可能面临其他未修复漏洞的风险。
Q&A
CVE-2024-4577漏洞的影响范围是什么?
受影响的PHP版本包括8.3 < 8.3.8、8.2 < 8.2.20和8.1 < 8.1.29。
如何检测我的PHP版本是否受CVE-2024-4577漏洞影响?
Windows系统的PHP CGI用户可以通过命令'php -v'来查看PHP版本。
如果无法升级PHP版本,我该如何防护?
可以暂时关闭CGI功能或使用重写规则进行临时防护。
CVE-2024-4577漏洞是如何产生的?
该漏洞由于PHP在设计时忽略了Windows系统对字符转换的Best-Fit特性而产生。
官方对CVE-2024-4577漏洞的修复措施是什么?
官方已发布修复补丁,建议用户尽快升级到最新版本。
使用XAMPP for Windows的用户如何避免CVE-2024-4577漏洞?
可以通过修改Apache配置,注释掉ScriptAlias /php-cgi/的行来避免漏洞影响。