【紧急漏洞预警】PHP爆出两个代码执行漏洞(POC已公开)CVE-2026-109618与CVE-2026-109619"

admin 2026-10-24 15:13:35 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

【紧急漏洞预警】PHP爆出两个代码执行漏洞(POC已公开)CVE-2026-109618与CVE-2026-109619

YGnight
YGnight

night安全

2026年10月22日 08:40
江西

去阅读

一、漏洞描述

CVE 编号 CVE-2026-109618 与 CVE-2026-109619
漏洞类型 109618 是内存耗尽处理中断后,请求内存还处于半初始化状态就被收尾读取;109619 是全局状态在请求内存释放之后仍被后来的请求引用。CNA 归入 CWE-416、CWE-755、CWE-824、CWE-1325
受影响组件 PHP 内核的内存分配与请求收尾逻辑,Zend/zend\_alloc.c、Zend/zend\_execute\_API.c、main/main.c 等,Web SAPI 下可远程触达
影响版本 8.2.\ 早于 8.2.35、8.3.\ 早于 8.3.36、8.4.\ 早于 8.4.27、8.5.\ 早于 8.5.12,NVD 与 CNA 口径一致;官方另为 7.4、8.0、8.1 提供最小源码补丁
修复版本 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35
修复提交 31c0ea7d7ff1,标题为 Avoid state corruption via bailout
发布时间 公告与 NVD 记录均为 2026-10-21,8.5.12 的 ChangeLog 记为 2026-10-22
触发前提 能向对外提供 Web 服务的 PHP 发请求;官方点名 mod\_php 风险最高,未登录请求可在应用代码执行之前触发
利用条件 无需登录,无需用户交互;CVSS 4.0 记攻击复杂度为高,前置条件为存在
危害面 后续请求读取或跳转到残留数据,官方称可发展为远程代码执行
CVSS 9.2,向量 CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N,[email protected] 口径,两个编号一致
EPSS FIRST 暂未收录这两个编号
公开代码 官方称已有可用的攻击实现,未公开利用细节

公开材料与官方口径的差异
官方描述与 8.5.12 的补丁都落在内存分配与请求收尾这两处。公开仓库里出现过另一套说法,把两个编号整体讲成 session.upload\_progress 的会话固定、文件名注入与 var\_destroy 释放后重用,三条既不在官方描述里,补丁中也没有对应改动,该仓库附带的脚本只做写入与人工核对,不产出判定结果。官方缓解项确实包含 session.upload\_progress.enabled=0,公告写明它挡住的是已确认的 session 路径,其余变体不在覆盖范围。前一、二句为官方公告口径,第三句来自对公开仓库内容的比对。

二、漏洞原理

内存耗尽的处理方式是一次 longjmp。

这条跳转直接离开当前位置,请求剩下的处理整段放弃。

离开的位置并不固定,有些代码路径要用的那块内存还没填完,跳转就已经发生。

收尾不看这个状态,照常读,也照常按读到的内容往下分支。

第二个编号指向另一处。

PHP 有一批全局位置的指针会临时指向属于某个请求的内存。

请求结束、内存回收之后,指针可能留在原处,也可能清掉之后又被填上。

worker 是复用的,下一个请求进来,还没走到正常初始化,就先碰到了上一个请求留下的状态。

8.5.12 把这次失败改成先记下来。

记录用的结构加在执行器全局里,状态分成四种,从没发生一直到处理完毕。

// Zend/zend\_alloc.h 8.5.12 新增
typedef enum \_zend\_oom\_state {
    ZEND\_OOM\_STATE\_NONE = 0,
    ZEND\_OOM\_STATE\_PENDING,
    ZEND\_OOM\_STATE\_HANDLING,
    ZEND\_OOM\_STATE\_HANDLED
} zend\_oom\_state;

typedef struct \_zend\_oom\_info {
    zend\_oom\_state state;
    uint32\_t lineno;
    zend\_string \message;
    zend\_string \
filename;
} zend\_oom\_info;

define ZEND\_HAS\_OOM() (UNEXPECTED(EG(delayed\_oom).state != ZEND\_OOM\_STATE\_NONE))

各处调用点在返回之前先问一次 ZEND\_HAS\_OOM。

分配入口也分成了两套,femalloc、fecalloc、ferealloc 这一组在超限时返回 NULL,不再直接跳出。

第二处改动在收尾。

下面这几个位置在 init\_executor 之前就会被错误处理用到,补丁逐个清零。

// Zend/zend\_execute\_API.c 8.5.12 zend\_shutdown\_executor\_values
/\ may be used by zend\_error\_zstr\_at before init\_executor \/
ZVAL\_UNDEF(&EG(user\_error\_handler));
ZVAL\_UNDEF(&EG(user\_exception\_handler));
ZVAL\_UNDEF(&EG(last\_fatal\_error\_backtrace));
EG(record\_errors) = false;
EG(num\_errors) = 0;
EG(errors) = NULL;
EG(error\_handling) = EH\_NORMAL;
EG(exception) = NULL;

补丁里的注释写的就是这个原因。

对象存储的两个字段一并归零,object\_buckets 置空,top 复位成 1。

session 一侧的改动对着上传进度。

这段处理发生在请求启动阶段,位置早于任何应用代码的执行。

补丁给它加了一个标记,标记打开时,解出来的对象一律保持成 \_\_PHP\_Incomplete\_Class。

// ext/session/session.c 8.5.12
static void php\_session\_unserialize\_init(php\_unserialize\_data\_t \var\_hash)
{
    PHP\_VAR\_UNSERIALIZE\_INIT(\
var\_hash);
    if (PS(in\_rfc1867\_update)) {
        php\_var\_unserialize\_set\_incomplete\_classes\_only(\*var\_hash, true);
    }
}

直接结果是,自动加载、\\_wakeup、\\_unserialize 与 unserialize\_callback\_func 在这段过程里都不会被触发。

请求解析那一侧的注册函数也改了返回值,safe\_php\_register\_variable 与 add\_protected\_variable 统一返回 !ZEND\_HAS\_OOM() 的取反。

CVSS 4.0 的向量里,攻击复杂度记的是高,前置条件记的是存在。

触发需要特定条件,也需要先做一轮准备。官方描述提到多种触发方式都能稳定命中,但两个编号的利用细节都没有公开,官方只说明已有可用的攻击实现。

三、修复建议

升到 8.5.12、8.4.27、8.3.36 或 8.2.35

近期值得重点关注的漏洞预警

【紧急漏洞预警】nacos爆出权限绕过漏洞,可以创建管理员账户,经过分析有点出处(已复现,exp脚本已编写)

【漏洞预警】Fortinet FortiSIEM‌路径遍历导致RCE漏洞(POC已公开)CVE-2026-106173

【漏洞预警】linux内核漏洞(POC已公开)已有 Android/ARM64 的利用实现CVE-2026-98260

【漏洞预警】Next.js爆出RCE漏洞(POC已公开)CVE-2026-96889

【漏洞预警】Nextcloud 已有服务器被写入后门

【紧急漏洞预警】GitLab整数溢出导致RCE漏洞(POC已公开)

【漏洞预警】AnyDesk Linux存在堆缓冲区溢出漏洞(POC已公开)

【漏洞预警】macOS爆出路径穿越漏洞CVE-2026-84568(POC已公开)

PostgreSQL爆出远程代码执行漏洞(POC已公开)

【漏洞预警】Atlassian八款产品爆任意文件读取漏洞(附POC)

【漏洞预警】Joomla视频画廊扩展存在SQL注入漏洞(POC已公开)

【漏洞预警】Roundcube网页邮件客户端存在SQL注入漏洞(附POC)

WordPress页面模板存在文件包含漏洞(POC已公开)CVE-2026-87902

WordPress插件Forminator未认证短代码执行漏洞(poc已公开)CVE-2026-92229

WordPress插件Authorizer存在权限提升漏洞(POC已公开)CVE-2026-81294

WordPress插件MStoreAPI存在认证绕过漏洞(POC已公开)CVE-2026-13447

CakePHP爆出SQL注入漏洞(POC已公开)CVE-2026-77635

Node.js模块proxy-addr爆出严重漏洞CVE-2026-90711

Langflow爆出代码执行漏洞CVE-2026-17633  (POC已公开)

Apache CVE-2026-42536,补它只用一行,洞龄十四年

【紧急】搜狗输入法爆出远程代码执行漏洞CVE-2026-51990  ,已被在野利用

【紧急】无需登录就能获取 GitLab 的任意文件数据(附POC)

【紧急】JumpServer堡垒机被公布Access Key泄露漏洞,可以实现提权

Spring Cloud Azure公布严重漏洞 无需任何权限即可取得登录会话

【漏洞POC已公开】Linux RDS 爆出提权漏洞 一块内存放两次,root就到手了

Tenda光猫爆出严重漏洞,目前无补丁(POC已公布

13 行补丁,堵住Linux能拿 root 的内核洞(EXP已公开)

48 字节,换走一台 Windows 的 SYSTEM(CVE-2026-62735漏洞POC已公开)

【漏洞预警】linux删个网桥就能提权root?目前没有补丁(POC已公开)

【漏洞预警】Linux三年前补上的洞,又一次被挖开了

【情报】支付宝8.2亿数据泄露?给同事说一声,别自己吓自己

【漏洞预警】自己注册个号,就能搬空别人的 Magento 订单和支付卡(POC已公开)

【漏洞预警】Next.js 爆出新漏洞,不用登录实现命令执行(POC已公开)

【漏洞补丁绕过预警】Redis CVE-2026-23479变种高危漏洞,EXP已公开

【漏洞补丁绕过】超 30 万 WordPress 站点受影响,Forminator 文件上传漏洞(附POC)

【漏洞预警】Exchange爆出RCE漏洞,利用Exchange 帮另一台 Exchange 开门(POC已公开)

【漏洞预警】不用登录,一个请求就能让 GeoServer 乖乖执行命令(POC已公开)

【漏洞预警】Keycloak不登录就能接管任意账户,双重验证也拦不住

【漏洞预警】 8月WebLogic公布了9个漏洞,有一个需要重点关注

【漏洞预警】近期MongoDB 公布了5个漏洞,最严重的一个可以不认证、远程就能拿下你电脑

【0DAY漏洞】 全球5G手机芯片厂商之一‌的紫光展锐SOC存在RCE漏洞,影响数十家手机厂商,还未发布补丁

【漏洞告警】安卓 14 到 16 全中招,通讯录 SQL 注入漏洞正在抄家(POC已公开)

【漏洞预警】紧急排查,SMB服务再曝新漏洞,利用脚本已公开

【漏洞预警】不用输密码,对方已经接管你的Mac:官方补丁公布macOS存在未鉴权RCE漏洞

【0day漏洞预警】MariaDB 13 爆 9.8 分 RCE 链:最低 USAGE 权限就能远程执行命令

VMware 爆 5 个洞,两个 9.8 不用密码就能打穿 vCente

buuctf WEB[ACTF2020新生赛]Execwriteup" 网络安全文章

buuctf WEB[ACTF2020新生赛]Execwriteup"

本文为BUUCTFWEB题目ACTF2020新生赛Exec的解题writeup,核心围绕命令执行漏洞利用展开。文章详细介绍了分号、管道符、逻辑运算符、命令替换等多种命令连接符的用法,通过构造恶意输入实现命令注入,最终成功获取flag。对CTF初学者理解命令执行漏洞具有参考价值。
从“检测”到“监测”,电磁空间安全正在发生重大变化......" 网络安全文章

从“检测”到“监测”,电磁空间安全正在发生重大变化......"

本文指出窃听窃视设备在触发方式、频率使用和存在形态三方面持续升级,传统单兵检测设备难以应对新型电磁安全风险,需从单次点式检测升级为检测加常态化监测的复合手段。文章还介绍了相关政策要求及中孚信息电磁空间监测预警方案,通过前端采集、异常分析处置和区域统一管理实现全维度安全保障。
评论:0   参与:  0