PHP远程代码执行漏洞(CVE-2026-109618、CVE-2026-109619)于2026年10月21日被CNVD收录,属PHP核心层内存管理缺陷,未经认证的攻击者可通过构造恶意multipart/form-data请求触发UAF,实现RCE、数据窃取或拒绝服务,CNVD评级“高危”,建议立即升级至PHP 8.5.12等修复版本。

PHP 8.0 本身不引入新的上传漏洞机制,但当前广泛利用的上传类攻击(如 CVE-2026-109618)在 PHP 8.0 环境中仍高发——它本质是内存管理缺陷触发的远程代码执行,而上传请求(尤其是特制 POST)正是最常见入口。识别这类流量,关键不是看“PHP 版本号”,而是抓取攻击载荷在 HTTP 层和 PHP 行为层留下的指纹。
重点关注 POST 请求中的异常组合
该漏洞利用依赖构造畸形 multipart/form-data 或超大/非法编码的 POST 数据体,典型特征包括:
- Content-Type 为 multipart/form-data,但 boundary 字符串含非常规符号(如 `----WebKitFormBoundary+乱码+数字混合`)、长度异常(>128 字节)或重复出现多次
- POST body 中存在明显伪造字段,例如:
upload_file[]=xxx、file_data[0][tmp_name]等非标准键名,或大量嵌套数组参数(如arr[][a][b][c]) - 文件字段(
filename="xxx.php")与 Content-Type(如text/plain)明显不符,且文件内容开头含 PHP 标签(<?php)或混淆字符串(如@eval(base64_decode() - 同一 IP 在 1 秒内发起 3+ 次带不同 filename 的上传请求,且响应状态码多为 200/500 交替(试探性利用)
检查请求头与会话上下文异常
攻击者常绕过常规校验,留下行为痕迹:
修复 Core bailout 状态损坏安全问题,以及 BZ2、DOM、PDO、Opcache/JIT 内存与执行错误,改进 Unicode 字素处理、URL 解析、TLS 流状态、信号分发及会话错误处理。
- User-Agent 为空、极简(如
-或curl/7.68.0)或高度雷同(多个请求 UA 完全一致) - Referer 为空或指向无效域名;若存在,常为已失陷站点或钓鱼页
- 携带异常 Cookie:如 session ID 长度固定为 26 位、含 base64 特征(
YTozOntzOjY6ImFkbWluIjs=)、或包含upload_progress相关键名(利用已被禁用但配置残留的 upload progress 机制) - 请求中夹带
PHPSESSID但对应 session 文件在服务器上不存在,或 session 存储目录下出现大量空/零字节 sess_* 文件
服务端日志里的 PHP 执行线索
即使未成功写入 WebShell,漏洞触发过程也会在错误日志或访问日志中暴露端倪:
立即学习“PHP免费学习笔记(深入)”;
- error_log 中高频出现:
Segmentation fault、zend_mm_heap corrupted、Use after free、double free等关键词(说明内存破坏已发生) - access_log 中同一 IP 对
/upload.php、/index.php、/api/file/upload等路径集中 POST,且 request_time >5s(因漏洞触发后进程卡顿) - 日志里出现非业务路径的临时文件名,如
/tmp/phpXXXXXX(PHP 上传临时文件),且后续紧跟对该文件的 GET 请求(尝试二次利用) - nginx/apache 日志中
$request_body或%{REQUEST_BODY}e记录显示 body 含base64_decode、gzinflate、str_rot13等解码函数名(即使被混淆,如"ba"."se64"."_dec"."ode")
配合 php.ini 配置验证风险面
流量特征需结合本地配置判断是否真可利用:
- 确认
file_uploads = On且upload_max_filesize设置过大(如 ≥128M)——攻击者倾向选择宽松配置下手 - 检查
session.upload_progress.enabled = 1(该配置在 PHP 8.0 已默认关闭,但旧迁移站点可能手动开启并遗忘)——若启用,攻击常伪造PHP_SESSION_UPLOAD_PROGRESS参数触发逻辑漏洞 - 查看
disable_functions是否遗漏关键函数(如未禁用pcntl_exec、proc_open),这些是漏洞利用后提权/驻留的关键跳板


















