云望IT

PHP SOAP 模块曝高危漏洞:可致远程代码执行,影响多个 PHP 8.x 主流版本

发布于 2026-05-28 22:28:00369 次阅读

一、情况概述

近期,PHP 被披露存在多处安全漏洞,漏洞主要集中在 SOAP、PHP-FPM、MBString、PDO_Firebird、Standard、DOM 等模块。其中,SOAP 模块相关漏洞风险最高,攻击者在特定条件下可通过构造恶意 SOAP 请求触发内存破坏,可能造成远程代码执行、信息泄露或服务崩溃。

本次值得重点关注的漏洞包括:

漏洞编号影响模块漏洞类型风险等级
CVE-2026-6722SOAPUse-after-freeCritical
CVE-2026-7261SOAPUse-after-freeCritical
CVE-2026-7262SOAP空指针检查缺陷High / Medium
CVE-2026-6735PHP-FPM跨站脚本攻击 XSSMedium / High
CVE-2026-7259MBString空指针解引用Medium
CVE-2026-6104MBString越界访问Medium
CVE-2025-14179PDO_FirebirdSQL 注入High
CVE-2026-7568Standard整数溢出Medium
CVE-2026-7258Standard字符处理缺陷Medium
CVE-2026-7263DOMXML 规范化异常Medium
CVE-2026-42371URI / uriparser数值截断Medium

在上述漏洞中,CVE-2026-6722CVE-2026-7261 对外部攻击面影响较大。若业务系统启用了 PHP SOAP 扩展,并对公网或不可信网络提供 SOAP 服务,应尽快进行排查和修复。

二、风险详情

1. SOAP 模块 Use-after-free 漏洞

SOAP 是 PHP 中用于构建和处理 SOAP Web Service 的扩展模块。在部分企业系统、旧版接口系统、支付对接、内部服务调用等场景中仍较常见。

本次披露的 SOAP 相关漏洞主要包括:

漏洞编号漏洞说明
CVE-2026-6722SOAP 扩展对象去重机制在处理 apache:Map 重复键时,可能保留已释放对象的悬空指针
CVE-2026-7261SoapServer 启用 SOAP_PERSISTENCE_SESSION 时,异常请求处理流程可能错误释放持久化对象并继续保留指针
CVE-2026-7262SOAP Apache map 处理逻辑中 NULL 检查不完整,可能导致异常行为或进程崩溃

其中,CVE-2026-6722 风险最为突出。该漏洞源于 SOAP 扩展在对象去重过程中,将 PHP 对象指针存储在全局映射表中,但未正确增加对象引用计数。当攻击者构造包含重复键的 apache:Map 节点时,原始 PHP 对象可能被释放,但全局映射表中仍保留指向该对象的悬空指针。

在后续处理 href 引用时,SOAP 扩展可能再次访问该悬空指针,从而触发 Use-after-free。由于已释放内存区域可能被 PHP 字符串等新对象重新占用,攻击者在可控 SOAP 请求体的情况下,存在进一步利用该漏洞实现远程代码执行的可能。

2. SOAP_PERSISTENCE_SESSION 场景风险

CVE-2026-7261SoapServer 的会话持久化模式有关。

当 PHP SOAP 服务使用 SOAP_PERSISTENCE_SESSION 时,服务端处理对象会通过 Session 在多次请求之间保持状态。在 SOAP 请求解析或处理过程中发生错误时,相关对象可能被错误释放,但内部仍保留指针引用,最终导致 Use-after-free。

该漏洞可能造成:

  • 内存破坏
  • 敏感信息泄露
  • PHP-FPM 子进程崩溃
  • 在特定条件下进一步扩大为代码执行风险

如果业务系统中存在如下代码特征,应重点关注:

$server = new SoapServer($wsdl);
$server->setPersistence(SOAP_PERSISTENCE_SESSION);
$server->handle();

3. PHP-FPM 状态页 XSS 漏洞

CVE-2026-6735 影响 PHP-FPM status endpoint。

PHP-FPM status 页面通常用于查看进程池状态、请求数量、慢请求情况等运行指标。如果该页面被暴露给公网或低权限用户访问,攻击者可能利用该漏洞注入恶意脚本,进一步攻击访问该页面的管理员或运维人员。

该漏洞本身不一定直接导致服务器被接管,但在管理后台、监控平台、内网运维系统中,可能被用于窃取凭证、劫持会话或配合其他漏洞扩大攻击影响。

4. MBString 模块内存安全问题

MBString 是 PHP 中常用的多字节字符串处理扩展,广泛用于中文、日文、韩文等多字节字符处理场景。

本次涉及 MBString 的漏洞包括:

漏洞编号漏洞说明
CVE-2026-7259php_mb_check_encoding() 可通过 mb_ereg_search_init() 触发空指针解引用
CVE-2026-6104mbfl_name2encoding_ex() 存在越界访问问题

此类漏洞通常需要攻击者控制特定字符编码、正则表达式或输入内容。成功触发后,可能导致 PHP 进程崩溃,造成拒绝服务影响。

5. PDO_Firebird SQL 注入漏洞

CVE-2025-14179 影响 PDO_Firebird 模块。

该漏洞与 Firebird 驱动处理带 NUL 字节字符串时的引用和转义逻辑有关。攻击者可能利用特制输入影响 SQL 语句结构,从而造成 SQL 注入。

若业务系统使用 Firebird 数据库,并依赖 PDO_Firebird 进行 SQL 构造、字符串引用或参数处理,应尽快排查是否受影响。

6. Standard、DOM 与 URI 相关问题

除 SOAP、FPM、MBString、PDO_Firebird 外,本次还涉及 PHP 标准库、DOM 与 URI 解析相关漏洞。

漏洞编号影响模块漏洞说明
CVE-2026-7568Standard字符数组偏移处理存在有符号整数溢出
CVE-2026-7258Standardctype.h 相关函数字符处理方式不当,可能导致未定义行为
CVE-2026-7263DOMDom\XMLDocument::C14N() 可能输出重复 XML 命名空间声明
CVE-2026-42371URI / uriparserURI 解析组件存在数值截断问题

其中,DOM C14N 问题对依赖 XML 签名、验签、SAML、SOAP 安全扩展、接口报文完整性校验的系统具有一定影响,可能造成规范化结果异常。

三、风险危害

1. 远程代码执行风险

SOAP 相关漏洞在攻击者可控制 SOAP 请求体的情况下,可能触发 Use-after-free。尤其是 CVE-2026-6722,由于涉及对象释放后的悬空指针复用,具备较高利用价值。

若 SOAP 服务直接暴露在公网,攻击者可能通过发送恶意 XML/SOAP 请求触发漏洞,进一步造成远程代码执行风险。

2. 服务拒绝与业务中断

MBString、SOAP、Standard 等模块中的内存安全问题可能导致 PHP-FPM worker 进程崩溃。在高并发攻击下,攻击者可能通过反复发送畸形请求造成 PHP-FPM 子进程频繁重启,影响业务可用性。

3. 信息泄露风险

Use-after-free 类漏洞可能导致进程内存被异常读取或复用。在特定条件下,攻击者可能获取敏感数据,例如业务响应内容、Session 信息、内部对象数据等。

4. SQL 注入风险

使用 PDO_Firebird 的业务系统可能受 CVE-2025-14179 影响。若攻击者能够控制进入数据库查询的参数,并触发 NUL 字节相关处理缺陷,可能导致 SQL 注入,进一步造成数据泄露、数据篡改或权限绕过。

5. 管理面攻击风险

PHP-FPM status 页面通常属于运维管理面接口。若该接口对外暴露,CVE-2026-6735 可能被用于 XSS 攻击,进而影响运维人员浏览器环境、内部监控平台或管理系统账号安全。

四、受影响范围

受影响的 PHP 版本主要包括:

PHP 分支受影响版本修复版本
PHP 8.28.2.x 低于 8.2.318.2.31
PHP 8.38.3.x 低于 8.3.318.3.31
PHP 8.48.4.x 低于 8.4.218.4.21
PHP 8.58.5.x 低于 8.5.68.5.6

重点受影响场景包括:

  • 启用 PHP SOAP 扩展并对外提供 SOAP 接口
  • 使用 SoapServer 处理外部请求
  • 使用 SOAP_PERSISTENCE_SESSION 持久化 SOAP handler 对象
  • PHP-FPM status 页面被公网或低权限用户访问
  • 使用 MBString 处理用户可控字符编码或正则输入
  • 使用 PDO_Firebird 连接 Firebird 数据库
  • 使用 XML C14N 进行签名、验签或报文完整性校验
  • 使用 PHP 8.5 URI 相关解析能力

五、排查方法

1. 检查 PHP 版本

php -v

若使用 PHP-FPM,可执行:

php-fpm -v

也可通过系统包管理器查看:

# Debian / Ubuntu
dpkg -l | grep php

# RHEL / CentOS / Rocky / Alma
rpm -qa | grep php

如果版本低于以下修复版本,则可能受影响:

PHP 分支安全版本
PHP 8.28.2.31 及以上
PHP 8.38.3.31 及以上
PHP 8.48.4.21 及以上
PHP 8.58.5.6 及以上

2. 检查是否启用 SOAP 扩展

php -m | grep -i soap

如果返回 soap,说明当前环境已启用 SOAP 扩展。

3. 检查业务代码是否使用 SoapServer

grep -rn "SoapServer\|SOAP_PERSISTENCE_SESSION" /path/to/app

如发现 SOAP_PERSISTENCE_SESSION,应优先处置。

4. 检查 PHP-FPM status 是否启用

grep -rn "pm.status_path" /etc/php* /usr/local/etc/php* 2>/dev/null

如配置了 pm.status_path,需进一步检查 NGINX、Apache 或网关层是否对外暴露该路径。

5. 检查是否启用 MBString

php -m | grep -i mbstring

6. 检查是否启用 PDO_Firebird

php -m | grep -i firebird

若返回 Firebird 相关模块,应重点排查数据库访问代码。

六、处置与修复建议

1. 立即升级 PHP 版本

建议受影响用户尽快升级至以下版本或更高版本:

PHP 分支建议版本
PHP 8.28.2.31 或更高版本
PHP 8.38.3.31 或更高版本
PHP 8.48.4.21 或更高版本
PHP 8.58.5.6 或更高版本

升级后需重启 PHP-FPM、Web Server、队列 Worker、定时任务守护进程等长期运行进程,确保新版本生效。

# Debian / Ubuntu
apt update
apt upgrade php php-fpm

# RHEL / CentOS / Rocky / Alma
dnf update php php-fpm

重启服务示例:

systemctl restart php-fpm
systemctl restart nginx
systemctl restart httpd

不同系统中的 PHP-FPM 服务名可能为 php8.3-fpmphp8.4-fpmphp-fpm,请以实际环境为准。

2. 临时禁用 SOAP 扩展

若业务不依赖 SOAP,可临时禁用 SOAP 扩展以降低风险。

查看 PHP 配置文件位置:

php --ini

在对应配置文件中注释或移除 SOAP 扩展加载项:

;extension=soap

修改后重启 PHP-FPM 或 Web Server。

3. 限制 SOAP 接口访问来源

若业务必须使用 SOAP,应通过网络层、网关层或应用层限制调用来源。

建议措施包括:

  • 仅允许可信内网或固定 IP 访问 SOAP 接口
  • 对 SOAP 接口增加身份认证
  • 在 WAF 或网关层拦截畸形 XML/SOAP 请求
  • 对异常 500 错误、PHP-FPM worker 崩溃进行告警

4. 收敛 PHP-FPM status 页面

PHP-FPM status 页面不应暴露公网,建议仅允许本机或可信管理网段访问。

NGINX 配置示例:

location /status {
    allow 127.0.0.1;
    allow 10.0.0.0/8;
    deny all;

    fastcgi_pass unix:/run/php/php-fpm.sock;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

5. 加强数据库查询安全

使用 PDO_Firebird 的系统应避免拼接 SQL,推荐使用参数化查询。

安全示例:

$stmt = $pdo->prepare('SELECT * FROM users WHERE id = ?');
$stmt->execute([$id]);

高风险写法示例:

$sql = "SELECT * FROM users WHERE id = " . $_GET['id'];

6. 关注异常日志

建议重点关注以下日志特征:

日志特征可能风险
PHP-FPM worker 频繁崩溃可能存在内存安全漏洞触发行为
SOAP 接口出现大量畸形 XML 请求可能存在漏洞探测或利用尝试
PHP-FPM status 页面被异常访问可能存在管理面探测或 XSS 尝试
Firebird 数据库出现异常 SQL 报错可能存在 SQL 注入尝试

可通过以下命令查看相关日志:

journalctl -u php-fpm
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log
tail -f /var/log/httpd/error_log

七、修复优先级建议

建议按照以下优先级开展处置:

优先级处置对象原因
P0公网 SOAP 服务可能存在远程代码执行或严重内存破坏风险
P0使用 SOAP_PERSISTENCE_SESSION 的 SOAP 服务受 CVE-2026-7261 影响较大
P1暴露 PHP-FPM status 的服务器存在管理面 XSS 风险
P1使用 PDO_Firebird 的业务系统存在 SQL 注入风险
P2启用 MBString 且处理复杂用户输入的系统存在拒绝服务风险
P2依赖 XML C14N 或 URI 解析的业务可能影响签名校验或解析一致性

八、总结

本次 PHP 多个漏洞中,SOAP 模块相关问题风险最高。对于启用了 SOAP 扩展并对外提供服务的系统,攻击者可能通过构造恶意 SOAP 请求触发 Use-after-free,造成远程代码执行、信息泄露或服务崩溃。

建议相关用户尽快升级至 PHP 官方修复版本:

  • PHP 8.2.31 或更高版本
  • PHP 8.3.31 或更高版本
  • PHP 8.4.21 或更高版本
  • PHP 8.5.6 或更高版本

若短期内无法升级,应优先限制 SOAP 接口访问来源,禁用不必要的 SOAP 扩展,收敛 PHP-FPM status 页面,并持续监控 PHP-FPM 崩溃、畸形 SOAP 请求和数据库异常报错等风险信号。

九、外部参考