首页 > 焦点要闻 > 正文

关于PHP 远程代码执行漏洞 (CVE-2026-109618、CVE-2026-109619)的安全公告

来源:时间:2026-10-22点击数:

大工网安告[2026035]

一、 情况分析

PHP 是一种广泛使用的开源服务器端脚本语言,主要运行于 Web 服务器端,支持 Apache mod_php、PHP-FPM(配合 Nginx、Apache mod_proxy_fcgi)、FrankenPHP、LiteSpeed LSAPI 等多种部署方式。W3Techs 统计显示,全球约四分之三的网站使用 PHP 作为服务器 端编程语言,WordPress、Drupal、Joomla、MediaWiki、Magento、phpMyAdmin、Nextcloud、 Laravel、Symfony、WHMCS 等主流应用均依赖 PHP。

近日,监测到官方修复PHP 远程代码执行漏洞(CVE-2026-109618、 CVE-2026-109619),两个漏洞均与 PHP 请求生命周期边界上的状态管理缺陷有关: CVE-2026-109618 利用内存耗尽(OOM)时的 longjmp() 提前退出,使尚未完成初始化的请求内存在 requestshutdown 阶段被错误消费;CVE-2026-109619 利用 worker 全局状态在请求结束后未正确重置,使后续请求在正常初始化之前访问已释放的请求内存。攻击者无需认证,通过构造恶意 HTTP 请求即可触发释放后重用(UAF),进而实现内存泄露和远程代码执行。

威胁类型:代码执行。

技术类型:释放后重用(UAF)、内存 破坏、OOM 状态破坏。

危害描述:可导致无需认证的堆UAF、内存泄露和远程代码执行,攻击者以 Webworker权限执行任意命令,写入WebShell、窃取凭据和业务 数据、横向移动并植入持久化后门。

二、 影响版本

PHP<8.2.35

PHP<8.3.36

PHP<8.4.27

PHP<8.5.12

仍在维护的分支:

PHP8.5、8.4、8.3仍处于现行维护期,应优先升级到对应修复版本或更高版本。

8.2.35是当前可用的修复版本,也是8.2分支最后的升级时间窗口之一;建议尽快规划升级到8.3或更高版本。

已停止维护的分支:

PHP8.1、8.0、7.4及更早版本已停止官方支持,PHP官方不再发布修复版本。 PHP≤7.3/5.x同样已停止维护,官方不提供修复版本,应优先升级。

三、 处置建议

修复解决方案(含漏洞补丁):

官方已发布安全补丁,请及时更新至最新版本:

PHP 8.5.12

PHP 8.4.27

PHP 8.3.36

PHP 8.2.35

1. 升级后必须重启 Apache、PHP-FPM 及所有常驻 worker,确保旧进程不再处理请求;仅替换二进制而不重启进程不能消除风险。

2. 容器环境应重新构建镜像,避免沿用包含旧 PHP 的 layer;Kubernetes 环境应 滚动重启所有 Pod,并确认没有旧 ReplicaSet 继续服务。

3. 发行版仓库(Ubuntu、Debian、RHEL、Alpine 等)和集成环境(宝塔、phpStudy、 XAMPP、Docker 官方镜像等)可能存在同步延迟,请以 `php-v`、`php-fpm-v` 的实际 输出为准,不要仅核对包管理器版本号。

4. PHP 8.1 及更早版本已停止支持,官方不再提供补丁,建议迁移至 PHP8.2 或更高版本;若使用发行版长期支持分支,请以厂商公告为准。

注意:不要使用 RLIMIT_AS 或 RLIMIT_DATA 作为缓解措施。这些限制会导致 mmap() 失败,从而触发 CVE-2026-109618 所依赖的 longjmp() 路径。

临时缓解措施:

暂时无法升级,可采取以下缓解措施并重启全部工作进程。

1、关闭 upload progress

session.upload_progress.enabled = off

FPM pool:

php_admin_flag[session.upload_progress.enabled] = off

2.关闭 fatal backtrace

fatal_error_backtraces = 0

只阻断 109619 已确认的 backtrace 路径,不影响其他变体。

3.限制请求形态

memory_limit = -1

post_max_size = 8M ; 不需要上传时;需要上传可设 32M

upload_max_filesize = 8M ; 必须小于 post_max_size

max_input_vars = 200 ; 默认 1000,按业务调整

max_input_nesting_level = 10 ; 默认 64

max_multipart_body_parts = 20 ; PHP 8.1+,默认可能较大

max_file_uploads = 5 ; 默认 20

4.阻断 multipart/form-data (适用于不需要上传的站点/路径)

Nginx:

map $http_content_type $mp_block {

default 0;

"~*multipart/form-data" 1;

}

server {

if ($mp_block) { return 403; }

}

Apache:

RewriteEngine On

RewriteCond %{HTTP:Content-Type} multipart/form-data [NC]

RewriteRule ^ - [F]

Caddy:

@multipart header Content-Type *multipart/form-data*

respond @multipart 403


地址:大连市甘井子区凌工路2号,大连理工大学 邮编:116024

电话:0411-84708645 copyright2013 大连理工大学网络与信息化中心