宝塔 PHP 漏洞紧急修复:CVE-2026-109618,5 分钟升级

本站部分链接为联盟推广链接。通过这些链接购买,我可能获得佣金...

这不仅不会增加您的实际费用,通常还能让您享受到专属折扣。所有上榜推荐均基于真实项目环境下的自费实测,排名完全由客观测评数据决定。详细规则请查阅《免责声明》。

本文信息更新至 2026 年 10 月 23 日,所有版本号和操作步骤都来自文末列出的 PHP、宝塔、aaPanel 官方通告。

10 月 21 日,PHP 官网发了一条安全公告,标题最后两个词是 update now,立即更新。我做站这么多年,很少见 PHP 官方用这么直白的措辞。

我先把结论放前面:只要你的服务器上跑着 PHP 网站,不管是 WordPress 还是别的程序,都要升级。 宝塔和 aaPanel 已经把修复包放进软件商店,点几下就能修完,大概 5 分钟。

下面我把这是什么漏洞、你该装哪个版本、怎么确认修好了,一次讲清楚。

这次 PHP 漏洞有多严重?

PHP 官方这次一次修复了两个漏洞:

  • CVE-2026-109618:内存耗尽时,请求数据只初始化了一半,清理流程却把这些无效数据当成有效的来处理,最终导致远程代码执行。
  • CVE-2026-109619:一个请求的内部状态在内存释放后还残留着,同一个 worker 处理下一个请求时可能用到这个过期的状态,同样能被利用来执行代码。

两个漏洞的 CVSS 评分都是 9.2,属于严重级别。安全圈把它们合称为 PHP2Shell。

我觉得真正吓人的是这三点。

一是不用登录。 攻击者不需要你后台的任何账号,发请求就能打。

二是跟你的程序代码无关。 PHP 官方公告说,mod_php 环境下已有演示过的利用,攻击请求能在任何应用代码运行之前就触发。也就是说,你 WordPress 装了再多安全插件也拦不住,因为漏洞在 PHP 本身,插件还没来得及加载。

三是攻击已经开始了。 几家安全机构的观察是这样的:

  • watchTowr 称,从 10 月 21 日起就在自家蜜罐网络里观察到了在野利用。
  • Rapid7 表示已收到多起利用尝试的报告,网上也已有多个公开的 PoC。
  • Patchstack 转述 Cloudflare CTO 的说法:Cloudflare 已经看到了早期攻击。

PHP 官方的态度也很明确:没有完整的缓解办法,升级是唯一安全的选择。

php net security advisory cve 2026 109618

我用宝塔或 aaPanel,受影响吗?

受影响。 PHP 官方公告列出的受影响环境,覆盖了所有处理 Web 请求的 PHP:PHP-FPM、Apache mod_php、php-cgi、FrankenPHP 和 LiteSpeed。宝塔、aaPanel 上能选的运行方式都在里面。

受影响的版本也很简单:低于下文修复版本的,全部受影响。 PHP 7.x、8.0、8.1 这些官方早就不维护的老版本也在范围内。

运行方式不同,风险高低不一样。官方认为风险最高的是 Apache mod_php。PHP-FPM 方面,Rapid7 的分析是:目前公开的利用链还不完整,但源码分析认为它仍然可能受影响。所以不管哪种方式都要升级,只是 mod_php 的要排在最前面。

先看你的网站在用哪个 PHP 版本、哪种运行方式

这一步很多人会搞错。宝塔和 aaPanel 支持一台服务器装多个 PHP 版本,你在终端里敲 php -v 看到的版本,不一定是网站正在用的版本。

最准确的办法是看网站自己报出来的信息。WordPress 后台进「工具 → 站点健康 → 信息」,展开「服务器」,看这两行:

  • 「PHP 版本」(英文后台为 PHP version):要精确到最后一位,比如 8.3.36。
  • 「PHP SAPI」:显示网站的 PHP 是用哪种方式运行的。
wordpress site health php version sapi

「PHP SAPI」这一行,常见的值是这几个:

显示的值运行方式风险排序
apache2handlerApache mod_php官方认为风险最高,最优先升级
fpm-fcgiPHP-FPM受影响,同样必须升级
cgi-fcgiphp-cgi / FastCGI受影响,同样必须升级
litespeedLiteSpeed / OpenLiteSpeed受影响,同样必须升级

不是 WordPress 的站点也能查。在网站根目录新建一个 v.php,写入下面这一行,用浏览器打开它,就能看到版本号和运行方式。看完马上删掉这个文件,别把服务器信息留在网上。

php

想知道服务器上一共装了哪些 PHP 版本,可以在终端里执行下面这条命令,目录名就是版本号,比如 74、82、83:

bash

宝塔、aaPanel 修复版本一览

三方官方通告里的版本号都对在这张表里了。找到网站在用的那个分支,确认面板里能升级到的版本不低于表里的数字:

PHP 分支PHP 官方修复版宝塔(Linux)修复版aaPanel 修复版
8.58.5.128.5.128.5.12
8.48.4.278.4.278.4.27
8.38.3.368.3.368.3.36
8.28.2.358.2.358.2.35
8.1官方不再更新8.1.35(宝塔打包)8.1.35(aaPanel 打包)
8.0官方不再更新8.0.31(宝塔打包)8.0.27(aaPanel 打包)
7.4官方不再更新7.4.34(宝塔打包)7.4.34(aaPanel 打包)
7.0–7.3官方不再更新7.0.34 / 7.1.34 / 7.2.35 / 7.3.34,需执行脚本7.0.34 / 7.1.34 / 7.2.35 / 7.3.34,需执行脚本

表里有两点要说明。

8.1 及更早的版本,PHP 官方已经不再出新版本了。 但官方安全团队这次破例给 7.4、8.0、8.1 提供了最小源码补丁,宝塔和 aaPanel 就是基于这些补丁自己打包的。所以老版本也能修,不用急着跨大版本升级,把网站搞崩。

8.0 分支两家的版本号不一样,这是正常的。 补丁版是两家各自打包的,编号各管各的:宝塔是 8.0.31,aaPanel 是 8.0.27。aaPanel 在 10 月 22 日发通知时,8.0 补丁版还标着「测试中」,之后官方在论坛回复,7.4、8.0、8.1 的修复都已经加进更新了。

aapanel gmail

宝塔面板:5 分钟升级步骤(PHP 7.4 及以上)

宝塔官方给出的路径很简单,而且不需要先升级面板本身:

  1. 进入「软件商店」,切到「已安装」。
  2. 点「更新软件列表 / 支付状态」,让面板拉取最新的软件版本。
  3. 找到网站在用的 PHP 版本,点右边的「更新」。
  4. 装了好几个 PHP 版本的,每个都要单独更新,没在用的也建议一起更了。
bt panel software store php update

升级过程中 PHP 会重启,网站可能会断开一小会儿。站点访问量大的话,挑凌晨这种低峰时间操作。

PHP 7.0 到 7.3 的用户要在宝塔的「终端」里执行官方修复脚本。末尾的数字对应你的版本,70、71、72、73 选一个:

bash

执行之前一定先给服务器做快照,或者完整备份一次网站。宝塔官方也提醒,这一步会重启对应的 PHP 服务。

宝塔 Windows 面板: PHP 8.2 及以上已经可以在软件商店升级。截至 10 月 22 日官方通告,PHP 8.1 及更早的版本还没有修复包,只能先用下文的临时缓解办法。

aaPanel:升级步骤基本一样

aaPanel 是宝塔的国际版,核心代码相同,操作也几乎一模一样。如果你还不熟悉两者的区别,可以看这篇 宝塔面板 vs aaPanel 深度对比。

aaPanel 官方给出的步骤是:

  1. 进入「App Store」,打开「Installed」,点「Update App List」刷新列表。
  2. 找到对应的 PHP 版本,点「Update」。
  3. 装了多个 PHP 版本的,同样逐个更新。

PHP 7.0 到 7.3 的 aaPanel 用户,执行 aaPanel 官方的补丁脚本。同样把末尾的 73 换成你的版本:

bash

用 OpenLiteSpeed 的 aaPanel 用户要单独处理。aaPanel 官方说明,LSPHP 在面板里只能安装、不能升级,要用系统包管理器来更新:

bash

如果你是照着 aaPanel 安装 WordPress 教程装好的环境,走的是 Nginx 加 PHP。按上面的面板步骤更新就行。

升级完一定要确认这三件事

宝塔的防护方案里特意提醒了一句,我觉得很重要:扫描结果显示「已修复」,不能代替你自己核对版本。

第一,回到站点健康看版本号。 「PHP 版本」那一行,应该已经变成表里的修复版本。这个数字是网站正在运行的 PHP 进程自己报出来的。它显示新版本,就说明网站确实已经跑在新版本上了。

第二,确认 PHP 服务真的重启过。 官方通告强调,所有 worker 进程都要换成新版本,修复才生效。面板升级时一般会重启 PHP。如果站点健康里还是旧版本号,就手动重启一次。宝塔官方命令格式是 /etc/init.d/php-fpm-版本号 restart。不确定你服务器上的脚本叫什么,先用下面这条命令列出来,再照着名字执行:

bash

第三,把网站核心功能点一遍。 打开首页、登录后台、上传一张图、提交一次表单。小版本升级一般不会出问题,但点一遍更安心。

暂时升级不了怎么办?

有些服务器上跑着老旧的程序,确实不敢随便动。官方给了一些临时缓解措施,但官方说得很清楚:这些只能减少部分攻击路径,不能让服务器变安全,升级才是唯一的完整修复。 所以下面这些只能用来争取时间。

最主要的一条:关掉会话上传进度功能。 宝塔官方给出的路径是「软件商店 → PHP → 设置 → 配置修改」,找到 php.ini 里的这一项,改成:

ini

保存后必须重启 PHP。官方特别强调,这一项要在 php.ini 或 FPM 池配置里改,用 ini_set() 或 .user.ini 改都不生效。它能挡住 CVE-2026-109619 已确认的攻击路径,但挡不住其他变种。

bt panel php ini session upload progress disabled

用 PHP 8.5 的,再加一行:

ini

这一行只挡住官方确认的「致命错误回溯」那条路径。

官方还建议调低 post_max_size:不需要上传文件的站点可以设成 8M,需要上传的设成 32M,upload_max_filesize 要比它小。

官方文档里还列了一条 memory_limit = -1,也就是取消 PHP 内存上限。我不建议普通站长照做。 取消上限后,任何一个出错的插件都可能吃光整台服务器的内存,等于拿一个风险去换另一个风险。

宝塔用户还可以用面板自带的防护:Nginx 防火墙、安全中心里的一键加固。不过宝塔通告写明了,这些属于专业版或企业版功能,而且同样只能降低风险,不能代替补丁。免费版用户可以先参考我之前写的 Nginx 拦截恶意扫描规则,把乱七八糟的扫描请求挡在外面。

真的一时修不了的服务器,watchTowr 给的建议最直接:先限制它的公网访问。

至于从 7.x 跨大版本升到 8.x 时,怎么提前检查插件和主题兼不兼容、怎么避免白屏,可以看这篇 WordPress 升级 PHP 版本教程。

顺手做一次备份,再看看服务器有没有异常

升级 PHP 之前做一次快照或备份,这是好习惯。万一升级后哪个老插件不兼容,能马上回滚。还没设好自动备份的话,可以参考 WordPress 自动备份的 3 种方案,面板备份加云存储各来一份最稳。

另外,既然 21 日起就已经有攻击了,升级完别急着收工,花几分钟看看三样东西:

  • 网站目录里有没有最近几天新冒出来的陌生 PHP 文件,尤其是 wp-content/uploads 里。
  • 面板的「计划任务」里有没有你不认识的任务。
  • 服务器 CPU 有没有莫名其妙一直跑满。

发现异常的话,光升级 PHP 已经不够了,得按被黑的流程处理。

顺带一提:宝塔这次的通告里还附带了 Node.js 的安全更新,修复版本是 22.23.4、24.22.1 和 26.12.1,在「软件商店 → Node.js 版本管理器」里更新。服务器上跑着 Node 项目的话,一起处理掉。宝塔特别提醒,装了新版本 Node.js 后,项目不会自动切过去,要手动切换版本并重启项目。

还在用老服务器、老系统的,借这次机会想想换机

这次漏洞也暴露了一个老问题:很多服务器还跑着 PHP 7.x,甚至更老的系统。这次面板厂商愿意帮忙回移补丁,下次未必。

PHP 官网也写明了,PHP 8.2 会在 2026 年 12 月 31 日结束支持。用 8.2 的朋友,这次升级完就可以开始规划迁到 8.3 或 8.4 了。

想换台干净的新机器重新部署的,可以参考 宝塔面板安装教程,配合 VPS 推荐汇总挑一台合适的机器,一次性把系统、面板、PHP 都换到受支持的版本。

官方通告原文

下面这几份是本文所有信息的来源。操作前建议再点开看一眼,确认有没有新的更正:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注


快捷菜单
WordPress 主机
VPS 主机
最新优惠
正版授权
VPS 补货监控