PHP-CGI 是一种用于在 Web 服务器上运行 PHP 脚本的接口,通过 CGI(公共网关接口)将 PHP 解释器与 Web 服务器连接。
2024年6月,PHP官方发布新版本,修复了 PHP-CGI 中一个远程代码执行漏洞。鉴于该漏洞无前置条件,易于利用,且默认情况下可获取操作系统权限,建议所有使用受影响版本的企业尽快升级修复,以确保安全。
漏洞成因
PHP 在设计时忽略了 Windows 中的 Best-Fit 字符转换特性。当 PHP-CGI 在 Windows 平台上运行并使用特定语系(如简体中文936、繁体中文950、日文932等)时,攻击者可以构造特殊查询字符串。URL 解码后,这些字符串可能包含特定非ASCII字符,这些字符在 Windows 系统上会被映射为连字符,从而绕过 CVE-2012-1823 及 CVE-2012-2311 补丁,构造 cgi 模式的命令行参数,执行任意 PHP 代码。
漏洞影响
该漏洞可在受影响的环境下执行任意PHP代码,从而获取操作系统权限。最严重的情况下,这可能导致服务器的完全接管,敏感数据泄露,甚至将服务器转化为发起其他攻击的跳板。
处置优先级:高
漏洞类型:代码执行
漏洞危害等级:高
权限认证要求:无需任何权限
系统配置要求:特定语言版本 Windows 通过 PHP-CGI 模式运行 PHP
用户交互要求:无需用户交互
利用成熟度:POC/EXP已公开
批量可利用性:可使用通用原理POC/EXP进行检测/利用
修复复杂度:低,官方提供升级修复方案
PHP 8.3 < 8.3.8
PHP 8.2 < 8.2.20
PHP 8.1 < 8.1.29
其他版本官方已停止维护,可根据实际情况采取相应的缓解措施。
临时缓解方案
对于无法升级更新PHP版本的使用者,可使用以下Rewrite规则来缓解风险,此方案仅适用于操作系统为简体中文936、繁体中文950、日文932语系的用户。
RewriteEngine On
RewriteCond %{QUERY_STRING} ^%ad
RewriteRule .? -
升级修复方案
官方已发布新版本修复漏洞,建议访问官方页面(https://www.php.net/)获取安全版本。
同时,PHP-CGI已经是一种过时且易出问题的架构,建议迁移至更为安全的Mod-PHP、FastCGI 或是 PHP-FPM 等架构。
雷池:已发布自定义规则支持该漏洞检测。
全悉:已发布规则升级包支持该漏洞检测。
6月6日 官方发布新版本修复漏洞
6月7日 长亭安全应急响应中心发布通告
参考资料:
[1]. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-4577
全力进行产品升级
及时将风险提示预案发送给客户
检测业务是否收到此次漏洞影响
请联系长亭应急服务团队
7*24小时,守护您的安全
第一时间找到我们:
应急响应热线:4000-327-707
原文始发于微信公众号(长亭安全应急响应中心):【已复现】PHP-CGI Windows平台远程代码执行漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论