漏洞描述
PHP 在设计时忽略了 Windows 中的 Best-Fit 字符转换特性。当 PHP-CGI 在 Windows 平台上运行并使用特定语系(如简体中文936、繁体中文950、日文932等)时,攻击者可以构造特殊查询字符串。URL 解码后,这些字符串可能包含特定非ASCII字符,这些字符在 Windows 系统上会被映射为连字符,从而绕过 CVE-2012-1823 及 CVE-2012-2311 补丁,构造 cgi 模式的命令行参数,执行任意 PHP 代码。
漏洞危害
可能导致的危害包括但不限于:
修复方法
将 PHP 更新到修复版本:8.3.8、8.2.20 或 8.1.29。
对于无法升级的旧版 PHP(如 8.0、7.x、5.x),通过添加重写规则阻止利用尝试:RewriteEngine On, RewriteCond %{QUERY_STRING} ^%ad [NC], RewriteRule .? - [F,L]。
如果不需要 PHP CGI 功能,注释掉 XAMPP 的 Apache 配置文件 (C:/xampp/apache/conf/extra/httpd-xampp.conf) 中的 ScriptAlias 行:# ScriptAlias /php-cgi/ "C:/xampp/php/"。
参考官方 PHP 下载页面获取最新修复版本:https://www.php.net/downloads。
如果无法立即修补,禁用 PHP-CGI 可执行端点或通过 Web 服务器配置限制对其的访问。
对于 Apache 服务器,确保未明确需要时禁用 mod_cgi 模块,并对 /php-cgi/ 目录应用严格权限。
参考链接
评分维度
长亭安全产品覆盖情况
漏洞时间线
漏洞披露
2024-06-10
漏洞信息更新
2025-03-24