宝塔 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 官方的态度也很明确:没有完整的缓解办法,升级是唯一安全的选择。
我用宝塔或 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 是用哪种方式运行的。
「PHP SAPI」这一行,常见的值是这几个:
| 显示的值 | 运行方式 | 风险排序 |
|---|---|---|
apache2handler | Apache mod_php | 官方认为风险最高,最优先升级 |
fpm-fcgi | PHP-FPM | 受影响,同样必须升级 |
cgi-fcgi | php-cgi / FastCGI | 受影响,同样必须升级 |
litespeed | LiteSpeed / OpenLiteSpeed | 受影响,同样必须升级 |
不是 WordPress 的站点也能查。在网站根目录新建一个 v.php,写入下面这一行,用浏览器打开它,就能看到版本号和运行方式。看完马上删掉这个文件,别把服务器信息留在网上。
php
<?php echo PHP_VERSION, ' ', PHP_SAPI;
想知道服务器上一共装了哪些 PHP 版本,可以在终端里执行下面这条命令,目录名就是版本号,比如 74、82、83:
bash
ls /www/server/php/
宝塔、aaPanel 修复版本一览
三方官方通告里的版本号都对在这张表里了。找到网站在用的那个分支,确认面板里能升级到的版本不低于表里的数字:
| PHP 分支 | PHP 官方修复版 | 宝塔(Linux)修复版 | aaPanel 修复版 |
|---|---|---|---|
| 8.5 | 8.5.12 | 8.5.12 | 8.5.12 |
| 8.4 | 8.4.27 | 8.4.27 | 8.4.27 |
| 8.3 | 8.3.36 | 8.3.36 | 8.3.36 |
| 8.2 | 8.2.35 | 8.2.35 | 8.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 的修复都已经加进更新了。
宝塔面板:5 分钟升级步骤(PHP 7.4 及以上)
宝塔官方给出的路径很简单,而且不需要先升级面板本身:
- 进入「软件商店」,切到「已安装」。
- 点「更新软件列表 / 支付状态」,让面板拉取最新的软件版本。
- 找到网站在用的 PHP 版本,点右边的「更新」。
- 装了好几个 PHP 版本的,每个都要单独更新,没在用的也建议一起更了。
升级过程中 PHP 会重启,网站可能会断开一小会儿。站点访问量大的话,挑凌晨这种低峰时间操作。
PHP 7.0 到 7.3 的用户要在宝塔的「终端」里执行官方修复脚本。末尾的数字对应你的版本,70、71、72、73 选一个:
bash
curl -fL -o php7_cve.sh https://download.bt.cn/install/php7_cve.sh && bash php7_cve.sh install 73
执行之前一定先给服务器做快照,或者完整备份一次网站。宝塔官方也提醒,这一步会重启对应的 PHP 服务。
宝塔 Windows 面板: PHP 8.2 及以上已经可以在软件商店升级。截至 10 月 22 日官方通告,PHP 8.1 及更早的版本还没有修复包,只能先用下文的临时缓解办法。
aaPanel:升级步骤基本一样
aaPanel 是宝塔的国际版,核心代码相同,操作也几乎一模一样。如果你还不熟悉两者的区别,可以看这篇 宝塔面板 vs aaPanel 深度对比。
aaPanel 官方给出的步骤是:
- 进入「App Store」,打开「Installed」,点「Update App List」刷新列表。
- 找到对应的 PHP 版本,点「Update」。
- 装了多个 PHP 版本的,同样逐个更新。
PHP 7.0 到 7.3 的 aaPanel 用户,执行 aaPanel 官方的补丁脚本。同样把末尾的 73 换成你的版本:
bash
sudo curl -o php7_cve.sh https://node.aapanel.com/install/php7_cve.sh && sudo bash php7_cve.sh install 73
用 OpenLiteSpeed 的 aaPanel 用户要单独处理。aaPanel 官方说明,LSPHP 在面板里只能安装、不能升级,要用系统包管理器来更新:
bash
# CentOS / AlmaLinux / Rocky
yum update 'lsphp*' -y
# Debian / Ubuntu
apt-get update
apt-get install --only-upgrade 'lsphp*' -y
如果你是照着 aaPanel 安装 WordPress 教程装好的环境,走的是 Nginx 加 PHP。按上面的面板步骤更新就行。
升级完一定要确认这三件事
宝塔的防护方案里特意提醒了一句,我觉得很重要:扫描结果显示「已修复」,不能代替你自己核对版本。
第一,回到站点健康看版本号。 「PHP 版本」那一行,应该已经变成表里的修复版本。这个数字是网站正在运行的 PHP 进程自己报出来的。它显示新版本,就说明网站确实已经跑在新版本上了。
第二,确认 PHP 服务真的重启过。 官方通告强调,所有 worker 进程都要换成新版本,修复才生效。面板升级时一般会重启 PHP。如果站点健康里还是旧版本号,就手动重启一次。宝塔官方命令格式是 /etc/init.d/php-fpm-版本号 restart。不确定你服务器上的脚本叫什么,先用下面这条命令列出来,再照着名字执行:
bash
ls /etc/init.d/ | grep php-fpm
第三,把网站核心功能点一遍。 打开首页、登录后台、上传一张图、提交一次表单。小版本升级一般不会出问题,但点一遍更安心。
暂时升级不了怎么办?
有些服务器上跑着老旧的程序,确实不敢随便动。官方给了一些临时缓解措施,但官方说得很清楚:这些只能减少部分攻击路径,不能让服务器变安全,升级才是唯一的完整修复。 所以下面这些只能用来争取时间。
最主要的一条:关掉会话上传进度功能。 宝塔官方给出的路径是「软件商店 → PHP → 设置 → 配置修改」,找到 php.ini 里的这一项,改成:
ini
session.upload_progress.enabled = 0
保存后必须重启 PHP。官方特别强调,这一项要在 php.ini 或 FPM 池配置里改,用 ini_set() 或 .user.ini 改都不生效。它能挡住 CVE-2026-109619 已确认的攻击路径,但挡不住其他变种。
用 PHP 8.5 的,再加一行:
ini
fatal_error_backtraces = 0
这一行只挡住官方确认的「致命错误回溯」那条路径。
官方还建议调低 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 都换到受支持的版本。
官方通告原文
下面这几份是本文所有信息的来源。操作前建议再点开看一眼,确认有没有新的更正:
- PHP 官方安全公告(2026-10-21):https://www.php.net/archive/2026.php#2026-10-21-5
- 宝塔:PHP 与 Node.js 紧急安全更新公告:https://docs.bt.cn/notices/php-nodejs-security-update-2026-10-21
- 宝塔:PHP 严重安全漏洞修复及防护方案:https://docs.bt.cn/notices/php-security-protection-guide
- aaPanel 官方论坛:Critical PHP Security Update:https://www.aapanel.com/forum/d/26249-critical-php-security-update