【安全圈】PHP官方补丁来了!速升这4个版本
安全圈 2026-10-22 00:00 江苏

PHP发布8.5.12/8.4.27/8.3.36/8.2.35修复两个未认证RCE严重漏洞,mod_php风险最高已有演示利用,附官方缓解措施

关键词
PHP漏洞
一、60秒看完全部要点
🚨 PHP 官方发布安全公告:两个严重漏洞可导致未经认证的远程代码执行
📦 修复版本已发布:PHP 8.5.12、8.4.27、8.3.36、8.2.35,官方强烈建议立即升级
🎯 受影响范围:所有处理 Web 请求的 PHP 安装——PHP-FPM、Apache mod_php、php-cgi、FrankenPHP、LiteSpeed
⚠️ 风险最高的是 mod_php:官方确认存在已演示的利用程序,一个未认证请求可在应用代码运行之前触发攻击
🔧 官方同时公布了缓解措施清单,但明确表示:只有升级才是完整解决方案
📌 PHP 7.4 / 8.0 / 8.1 提供了最小化源码 backport;用 remi 源的需自行想办法
二、官方公告:补丁已到,立即升级
PHP 官方于 10 月 21 日发布安全公告《Security advisory: Critical remote code execution vulnerabilities, update now》,宣布 PHP 8.5.12、8.4.27、8.3.36 和 8.2.35 四个受支持分支同步修复两个严重漏洞——这两个漏洞允许未经认证的远程代码执行。官方强烈建议所有 PHP 用户立即升级。
谁在风险范围内(官方原文):所有处理 Web 请求的 PHP 安装,包括 PHP-FPM、Apache 加 mod_php、php-cgi、FrankenPHP 和 LiteSpeed。官方认为 mod_php 的风险最高——存在已演示的利用程序(exploit),一个未认证的请求可以在任何应用代码运行之前触发攻击。
这句话的分量要掂清楚:"在任何应用代码运行之前触发攻击"意味着漏洞触发点位于应用层逻辑之前——依赖应用层逻辑生效的防护措施(如各类安全插件、应用内防火墙)在攻击发生时可能尚未加载。不能默认"装了防护就安全",版本升级不可替代。
三、技术分析:两个 RCE 的机制
漏洞一:CVE-2026-109618 —— 通过内存耗尽(OOM)损坏实现 RCE
官方安全公告(GHSA-w8hw-w9fx-j79w)描述:内存耗尽的处理过程,可能在 PHP 的内部请求数据只被部分初始化时将其打断。随后的请求清理流程,可能把这份无效数据当作有效数据继续使用。
漏洞二:CVE-2026-109619 —— 通过残留的全局状态实现 RCE
官方安全公告(GHSA-6wmf-4rv5-p3rp)描述:属于某个请求的内部状态,在其底层内存被释放之后仍可能存活。同一个 worker 处理的下一个请求,可能在正常初始化将其重置之前,直接使用这份残留状态。
为什么第二条尤其值得注意:这类"跨请求状态残留"漏洞意味着打补丁之前的每一次请求,都可能给后续请求留下隐患。这也解释了为什么官方的缓解措施里反复强调一个动作——升级或应用缓解配置后,必须重启每一个 worker。这不是流程仪式,而是把残留状态彻底清空的必要操作。
四、怎么升级:各版本路径
PHP 8.2 及以上:更新到 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35。源码和 Windows 二进制在 php.net 下载页:https://www.php.net/downloads.php
Linux 发行版与 LTS 用户:发行版和 LTS 厂商已提前拿到补丁,直接向厂商获取更新包即可。
PHP 8.1 及更旧版本:已不在 PHP 官方更新范围内。部分发行版和 LTS 厂商提供 backport 修复,请联系厂商确认;或借此机会升级到受支持版本。鉴于漏洞严重程度,PHP 安全团队为 PHP 7.4、8.0、8.1 提供了最小化的源码 backport,供自行编译或无 LTS 厂商支持的用户使用。
两个特别注意:①"最小化 backport"不是完整版本更新,只是修掉这两个 CVE 的最小补丁集,需要自己打补丁、自己编译;②官方在公告中明确劝退志愿者维护的 rpms.remirepo.net 仓库——该仓库当天不会有更新,强烈建议改用发行版自带包或从源码构建。仍在用 remi 源的管理员需要自行安排升级路径。
五、官方缓解措施清单(暂时升不了级的权宜之计)
官方公告明确表述:只有更新才是完整的解决方案,以下措施只能降低特定攻击路径的暴露面,不会让安装变得安全。
针对 CVE-2026-109618(OOM 损坏):
✅ 设 memory_limit=-1,最好用应用改不动的方式(如 FPM pool 或 Apache 配置中的 php_admin_value),并检查没有其他 pool、目录或应用设置把有限数值改回去。这消除了"PHP 内存限制被触发"这个可控失败点,但底层真实的分配失败仍可能走到漏洞路径
✅ 设较低的 post_max_size:不需要文件上传的应用设 post_max_size = 8M;必须上传的设 32M;保持 upload_max_filesize 低于 post_max_size
✅ 在 Web 服务器或代理层强制限制:解码后的请求大小、输入字段数量、multipart 分段数量、header 数量、嵌套深度——这些限制必须覆盖没有可用 Content-Length 的请求
✅ 用容器或 cgroup 限制作为可用性边界,最好是只杀掉受影响的那个 worker 的策略。不要用 RLIMIT_AS 或 RLIMIT_DATA 替代——它们反而会触发那个有问题的分配失败
针对 CVE-2026-109619(残留全局状态):
✅ 设 session.upload_progress.enabled=0,然后重启每一个 worker。配置需通过 php.ini、FPM pool 或服务器配置在请求解析之前生效——不要依赖 ini_set() 或 FPM 的 .user.ini。这能挡住已确认的 session 路径,但挡不住其他变体
✅ PHP 8.5 上设 fatal_error_backtraces=0,然后重启每一个 worker(只挡住已确认的致命错误回溯路径)
✅ 移除那些按请求生效、会在初始化之前输出诊断信息的无效或废弃设置——用 error_reporting、display_errors 或 @ 隐藏诊断信息是没有用的
✅ 修复攻击者可触发的致命错误和执行超时,包括回调、上传或导入处理、以及清理过程中的失败
官方两个安全公告(GHSA-w8hw-w9fx-j79w、GHSA-6wmf-4rv5-p3rp)含有完整技术细节,建议管理员在执行缓解前通读原文。
六、安全圈点评与处置建议
在安全圈看来,这次事件有三个值得记住的点。
第一,这是教科书级的"补丁前窗口期"处置样本。漏洞细节先于补丁泄露,从"细节已泄、补丁未到"到"官方发布修复版本"的这段时间,是最危险的暴露期。官方在公告中直接承认"存在已演示的利用程序"——这句话本身就应当触发最高级别的应急响应,而不是等 POC 在网络上大范围流传后再行动。
第二,缓解措施的定位要摆正。官方把话说得很直白:缓解措施"不使安装变得安全"。它们的价值在于为无法立即升级的环境争取时间——共享主机用户、有严格变更窗口的生产环境、依赖上游镜像的存量系统。但把缓解当成"可以不升级了"是危险的误读。
第三,"重启 worker"这个细节体现了漏洞的本质。残留状态类漏洞的修复不只是换代码——旧状态必须被物理清除。这也是很多管理员升级后以为万事大吉、却依然中招的原因之一:补丁装了,但带着残留状态的旧 worker 还在跑。无论升级还是应用缓解配置,重启所有 worker 都应是处置清单里的必选项。
给管理员的处置顺序建议:
1️⃣ 立即盘点 PHP 版本分布:所有对外提供 Web 服务的服务器、容器、面板环境逐一登记版本号,重点确认 PHP-FPM / mod_php / php-cgi 等运行方式
2️⃣ 能升级的马上升级至 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35,升级后重启所有 worker
3️⃣ 暂时不能升级的立即应用缓解配置(至少做 session.upload_progress.enabled=0 + 重启 worker;有条件的按上文清单逐项落实),并明确升级时间表
4️⃣ 排查 mod_php 环境:官方认定其风险最高且有已演示利用程序,这类主机应最优先处置
5️⃣ 共享主机用户主动联系服务商:不要问"有没有升 PHP",要问"是否已到 8.3.36 / 8.2.35 修复版本",并要求落实缓解配置
6️⃣ 升级后观察日志:回溯近期的异常内存耗尽、worker 重启、5xx 错误记录,评估是否存在已被利用的迹象
最后说一句:PHP 官方这次为已经停止支持的 7.4 / 8.0 / 8.1 额外提供 backport,这一罕见动作本身就说明了官方对这两个漏洞严重程度的判断。对运维来说,信号已经很明确了——今晚能升就升,升不了的把缓解措施今晚配上,一个都别拖到明天。
END
阅读推荐
【安全圈】突发双高危RCE!PHP官方紧急发布9.2分安全通告
【安全圈】0dayPoC公布!FortiSIEM遭空字节截断实现免认证RCE
【安全圈】双11前紧急叫停!京东JSRC全面暂停外部漏洞测试
【安全圈】克隆代码就中招!94个GitHub开源库遭假字体投毒

安全圈

←扫码关注我们
网罗圈内热点 专注网络安全
实时资讯一手掌握!

好看你就分享 有用就点个赞
支持「安全圈」就点个三连吧!

本文转载自微信公众号「安全圈」,查看原文。版权归原作者所有,如有侵权请联系删除。