【外评】严重 PHP 漏洞使服务器面临远程代码执行风险
DEVCORE 在 PHP 中发现了一个严重的远程代码执行漏洞,影响到 Windows 系统上所有版本的 PHP 语言。该漏洞被追踪为 CVE-2024-4577,已于 2024 年 6 月 6 日得到修补。
发现和披露
DEVCORE 攻势研究小组在检查 PHP 与 Windows 编码转换功能的集成时发现了这个关键漏洞。该漏洞允许未经认证的攻击者使用特定字符序列绕过现有保护(特别是 CVE-2012-1823),从而在受影响的服务器上执行任意代码。DEVCORE 于 2024 年 5 月 7 日向 PHP 官方团队报告了该问题,官方团队承认了问题的严重性,并迅速开发和发布了补丁。
技术细节和影响
该漏洞源于 PHP 实现中的一个疏忽,特别是在 Windows 上进行编码转换时对 Best-Fit 功能的处理。该漏洞允许参数注入攻击,从而危及服务器安全。受影响的 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 可执行文件。
- XAMPP for Windows,默认情况下会暴露 PHP 可执行二进制文件。
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 已更新至 8.3.8、8.2.20 或 8.1.29 版本。
- 彻底检查 PHP 配置,尤其是使用 CGI 模式或暴露 PHP 二进制文件的服务器。
- 如果无法立即升级,则使用推荐的重写规则。
- 评估迁移到更安全的 PHP 执行架构,如 Mod-PHP、FastCGI 或 PHP-FPM。
本文文字及图片出自 Critical PHP Vulnerability Exposes Servers to Remote Code Execution
你也许感兴趣的:
- PHP 不再糟糕
- 短短两年使用率下滑 40%!曾经风靡全球的 PHP 为何逐渐失去优势?
- 短短两年使用率下滑 40%!曾经风靡全球的 PHP 为何逐渐失去优势?
- PHP 8.3 正式发布的主要变化
- PHP 8:类型系统改进
- 为什么在 20 多年后,我仍然爱着 PHP 和 JavaScript
- 全球 77.5% 的网站,都在使用“世界上最好的语言” PHP!
- PHP“垂死”十年
- 微软宣布 Windows 将不提供 PHP 官方支持
- Zend 创始人提议创建PHP变种,暂命名为 P++
你对本文的反应是: