PHP再曝高危安全漏洞:TLS连接缺陷可致FPM全面崩溃,OpenSSL内存损坏隐患同步浮现

最近PHP官方连发两道安全通告,直接把不少运维同学吓出一身冷汗。编号CVE-2026-12184和CVE-2026-14355的两个漏洞,一个藏在HTTP流包装器的TLS握手环节,另一个潜伏在OpenSSL扩展的AES加密实现里,影响面都不小。如果你的服务器还在跑PHP 8.2、8.3或8.4的老版本这篇文章建议你认真看完。

先说CVE-2026-12184,这个漏洞的危险程度被标为"高影响",问题出在PHP尝试建立HTTPS安全连接时的异常处理逻辑上。正常情况下,PHP通过HTTP流包装器发起TLS连接,如果证书过期域名不匹配或者TLS初始化本身出了岔子,流对象会被关闭并重置。到这里本来没什么问题,坏就坏在后面的清理流程------代码假设流对象还可用,直接对空指针执行操作,结果可想而知。

攻击者甚至不需要写专门的利用脚本,只要构造一个能让TLS验证失败的远程请求,比如丢一个过期证书过去就能触发这个空指针解引用。一旦命中,PHP-FPM的工作进程会集体崩溃,整个Web服务直接瘫痪。CVSS v4评分里可用性影响拉得很高,毕竟谁都不想自己的网站被一张过期证书打挂。

受影响的版本包括PHP 8.3.32之前8.4.21之前以及8.5.6之前的所有版本。官方已经在7月初推送了修复补丁,核心思路就是修正清理逻辑,确保流对象关闭后不再被误用。如果你用的是Debian或Ubuntu系统,可以通过包管理器直接升级,Debian DSA-6377和Ubuntu安全公告都已经跟进。

另一个漏洞CVE-2026-14355则属于内存层面的问题,跟AES-WRAP-PAD算法有关。这个算法平时用得不多,但在某些加密场景下确实会出现。漏洞根因是缓冲区大小算错了------代码按明文长度分配输出缓冲区却忘了RFC 5649规定的填充数据和附加元数据也需要占地方。缓冲区给小了,OpenSSL加密时数据越界写入,Zend内存管理器的堆结构就被破坏了。

这种内存损坏未必当场让程序崩溃,更像一颗定时炸弹。随着时间推移,损坏的内存结构被访问到,应用可能莫名其妙地闪退或者行为异常,最终形成事实上的拒绝服务。虽然利用这个漏洞需要特定算法配合门槛不算低,但它不需要任何身份验证,攻击面依然很宽。

这个内存损坏问题波及PHP 8.2.32以下、8.3.32以下8.4.23以下以及8.5.8以下的版本。PHP官方在ChangeLog里明确记录了修复提交,通过调整缓冲区大小来堵住越界写入的口子。

回过头看,这两个漏洞其实指向同一个老问题:PHP这种被广泛部署的脚本语言,在核心组件的错误处理和内存管理上依然存在死角。TLS连接失败后的空指针操作、加密缓冲区的大小计算失误,都不是什么新鲜套路,但偏偏能在生产环境里潜伏这么久

对于实际运维来说,建议分几步走。第一,立刻检查当前PHP版本,对照上面的影响范围确认自己是否中招。第二优先安排升级,尤其是对外暴露Web服务的节点,PHP-FPM一旦崩溃就是全线不可用,业务损失远大于升级成本。第三,顺便审视一下代码里TLS连接和加密调用的使用方式,尽量减少不必要的远程HTTPS请求,对证书校验策略也做一次梳理。

PHP生态的补丁响应速度向来不慢,但漏洞修复永远只是事后补救。真正重要的是建立常态化的版本跟踪机制,别让安全更新在待办列表里躺太久。毕竟在这个漏洞满天飞的年代"能用就行"的心态迟早要付出代价。

相关推荐
学逆向的1 分钟前
PE——合并节
开发语言·网络安全·pe
是个西兰花4 分钟前
C++11:线程库与线程安全问题
开发语言·c++
点心的游戏开发世界6 分钟前
GDScript 入门笔记(十三):字符串操作
开发语言·笔记·游戏引擎·godot
少司府16 分钟前
C++进阶:智能指针
开发语言·数据结构·c++·b树·算法·c·智能指针
matlab代码18 分钟前
基于matlab的红绿灯图像检测识别系统【源码60期】
开发语言·matlab
博界IT精灵35 分钟前
C语言中的数据类型及其转换
c语言·开发语言
软件黑马王子38 分钟前
13.缓存池优化:对象上限配置
开发语言·前端框架·c#
维克兜率天1 小时前
4.3.2.1 日常监控:上线只是开始
服务器·数据库·python·区块链·php·量化
李迟1 小时前
Golang实践录:工程框架实践:搭建工程模板
开发语言·后端·golang
纪伊路上盛名在1 小时前
Kabsch算法的Julia实现
开发语言·算法·julia·序列分析·蛋白质·rmsd