安全公告:PHP 核心高危漏洞(PHP2Shell)影响喧喧运行环境,请尽快升级补丁
- 2026-10-23 15:25:41
- 喧喧IM 原创
- 28
2026 年 10 月 21 日,PHP 官方紧急发布安全更新,修复两个位于 PHP 解释器内核的高危漏洞(CVE-2026-109618、CVE-2026-109619,社区合称 PHP2Shell)。两个漏洞均可在未认证的情况下导致远程代码执行,CVSS v4.0 评分 9.2,为严重等级漏洞。攻击者无需登录、无需任何交互,即可在受影响的服务器上执行任意代码,也可能读取 PHP 工作进程内存中的密码、Token、密钥等敏感数据。
需要特别说明的是: 本次漏洞不在喧喧自身代码中,而位于喧喧服务端所依赖的 PHP 运行时。 不同喧喧版本的 PHP 运行时来源不同:
-
喧喧 10.x 版本:XXD 内置 FrankenPHP,PHP 运行时嵌入 XXD 包。修复时不需要升级服务器系统 PHP,不需要替换
xxd/xxd.exe可执行文件,只需替换 XXD 使用的一个 PHP 运行时文件:- Linux:
php/lib/libphp.so - Windows:
php8ts.dll
- Linux:
- 喧喧 9.x 及以下版本:不使用 FrankenPHP,PHP 运行时由 Zbox(Apache + PHP)或用户自己的 Web 环境提供,修复方式与 10.x 版本不同,详见第五节。
- 目前喧喧 11.1 版本尚在发布准备中,计划近期发布。正式发布后,该版本将内置修复后的 PHP 运行时;升级并使用该版本内置运行时后,无需再单独替换本公告提供的运行时修复文件。
当前可按以下方式处理:
| 当前情况 | 处理建议 |
|---|---|
| 正在使用喧喧 10.x,且运行时尚未修复 | 按本公告第二、三节下载并替换适配的 PHP 运行时文件。 |
| 正在使用喧喧 9.x 及以下版本,能够安排升级 | 先升级至当前已发布的最新 10.x 版本,再按本公告完成 PHP 运行时修复。 |
| 正在使用喧喧 9.x 及以下版本,计划等待 11.1 正式发布后升级 | 等待期间先实施第五节临时缓解措施;11.1 正式发布后,尽快按升级说明升级。 |
| 暂时无法替换运行时文件或完成升级 | 先实施第五节临时缓解措施,并尽快安排后续修复。 |
一、受影响的部署
- 使用未修复 PHP 运行时的喧喧服务端部署,包括源码包 / 手动部署和一键安装包;
- 10.x 版本:XXD 内置的 FrankenPHP 运行时未升级到修复版本;
- 9.x 及以下版本(以 9.6 为例:Linux Zbox 内置 PHP 7.2.33、Windows Zbox 内置 PHP 7.4.30、Windows XAMPP 集成包内置 PHP 7.0.19),以及源码包部署在未修复的系统 PHP 上;
- 受影响 PHP 版本:低于 PHP 8.2.35 的 8.2.x、低于 PHP 8.3.36 的 8.3.x、低于 PHP 8.4.27 的 8.4.x、低于 PHP 8.5.12 的 8.5.x;PHP 8.1 及更早分支已停止维护,同样受漏洞影响。
本次修复仅涉及服务端。喧喧客户端(Windows、macOS、Linux、浏览器端)不依赖 PHP 运行时,不属于本次漏洞影响范围,无需因本漏洞升级。
二、10.x 版本修复文件下载
本节修复文件适用于喧喧 10.x。不同操作系统、处理器架构和运行时之间不能混用文件。
下载地址:
解压后,请选择与部署环境匹配的文件,并在替换前核对 SHA256:
| 平台 | 文件 | 大小 | SHA256 |
|---|---|---|---|
| Linux x86_64 | linux-x64/libphp.so | 62 MB | da09ca6af66ca8452953a8c9f9e148db0b7015b8b011e4bc5f81e7498b0e82e6 |
| Linux ARM64 | linux-arm64/libphp.so | 75 MB | 5011f4e1c967815bf0b32a9e5dc82b8292badf8298bb69cc1c9f572a05e21a2c |
| Windows x86_64 | win-x64/brotlicommon.dll win-x64/brotlidec.dll win-x64/libcrypto-3-x64.dll win-x64/libsasl.dll win-x64/libssh2.dll win-x64/libssl-3-x64.dll win-x64/libssp-0.dll win-x64/nghttp2.dll win-x64/php8embed.dll win-x64/php8ts.dll win-x64/php8ts.dll.0 | 13 MB | 029022c7f0b15ef88ac48c8bcf602a4383893cbf97af158aafd6b1fa09a042b6 |
三、10.x 版本修复文件安装与替换
替换前请安排维护时间,并备份原运行时文件。以下以 XXD 目录 /opt/xxd
为例,实际部署路径不同时,请替换为实际部署路径。命令假定已解压 php2shell-20261022.zip
,并在解压后的目录中执行。
1. 停止 XXD
- Linux 源码部署:
sudo systemctl stop xxd - Linux Zbox 部署:
sudo /opt/zbox/zbox stop - Windows Zbox 部署:在 Zbox 面板中停止服务
- Windows 源码部署:停止
xxd.exe进程或对应的 Windows 服务
2. 备份原运行时文件
- Linux 源码部署:
进入xxd源码目录
sudo cp -a php/lib/libphp.so php/lib/libphp.so.bak-20261023
- Linux Zbox 部署:
sudo cp -a /opt/zbox/run/xxd/php/lib/libphp.so /opt/zbox/run/xxd/php/lib/libphp.so.bak-20261023
- Windows Zbox/源码部署:将
<XXD目录>\php8ts.dll等共11个文件, 重命名为*.bak-20261023。
3. 替换修复文件
Linux x86_64
源码包 / 手动部署:
sudo install -m 755 linux-x64/libphp.so php/lib/libphp.so
Zbox 部署:
sudo install -m 755 linux-x64/libphp.so /opt/zbox/run/xxd/php/lib/libphp.so
Linux ARM64
源码包 / 手动部署:
sudo install -m 755 linux-arm64/libphp.so php/lib/libphp.so
Zbox 部署:
sudo install -m 755 linux-arm64/libphp.so /opt/zbox/run/xxd/php/lib/libphp.so
Windows
源码包 / Zbox 部署:
将win-x64\php8ts.dll等11个文件 覆盖替换 "<源码包/Zbox安装目录>\bin\xxd\"目录下
4. 启动 XXD
- Linux 源码部署:
sudo systemctl start xxd - Linux Zbox 部署:
sudo /opt/zbox/zbox start - Windows Zbox 部署:在 Zbox 面板中启动服务
- Windows 源码部署:启动
xxd.exe或对应的 Windows 服务
5. 验证修复结果
访问 XXD 的 HTTP 地址,查看响应头中的 X-Powered-By
(以下以 http://127.0.0.1:9080/
为例,请替换为实际地址):
curl -I http://127.0.0.1:9080/ | grep -i x-powered-by
Linux 预期结果:
X-Powered-By: PHP/8.4.27
Windows 预期结果:
X-Powered-By: PHP/8.3.36
请以 HTTP 响应头为准。XXD 启动日志中的 php_version
可能仍显示旧版本,不能作为判断依据。
四、9.x 及以下版本修复方法
1. 版本与运行时现状
9.x 及以下版本不使用 FrankenPHP,PHP 运行时由安装包或用户自己的 Web 环境提供,不能直接使用第二节提供的文件进行替换。目前,9.x 及以下版本的专用补丁包由于时间原因正在处理中,尚未完成,暂未提供下载。后续进展请关注官方公告。
PHP 7.x 已停止维护,官方没有为 7.0 / 7.2 / 7.4 发布包含本次修复的正式版本;喧喧 9.x 产品线也已停止维护。
您可根据实际情况选择以下处理方式:
1. 当前能够安排升级
先升级至当前已发布的最新 10.x 版本,再按本公告第二、三节替换 PHP 运行时文件。升级前请备份数据和配置,并按照相应版本的官方升级说明操作;如涉及跨版本升级,请先确认适用的升级路径。
升级至 10.x 后,仍需完成本公告要求的 PHP 运行时修复。
2. 计划等待 11.1 正式发布后升级
喧喧 11.1 计划近期发布,目前尚在发布准备中。正式发布后将内置修复后的 PHP 运行时;升级并使用该版本内置运行时后,无需再单独替换本公告提供的运行时修复文件。
等待期间,请先实施第五节临时缓解措施;11.1 正式发布后,请尽快按照官方升级说明完成升级。
3. 暂时无法升级
请先实施第五节临时缓解措施,并关注旧版补丁包的后续进展。临时缓解不能替代运行时修复,仍需尽快安排后续处理。
五、临时缓解措施
如果暂时无法替换 PHP 运行时文件,可修改对应的 php.ini
,将以下配置项改为指定值(没有的请追加),然后重启所有工作进程:
- 10.x 版本:源码包 / 手动部署通常位于 XXD 目录下的
php.ini,Zbox 通常位于run/xxd/php.ini; - 9.x Linux Zbox:
/opt/zbox/etc/php/php.ini; - 9.x Windows Zbox:
zbox\bin\php\php.ini; - 9.x 源码包 / 手动部署:系统
php.ini,或 PHP-FPM 池 / Apache 虚拟主机配置。
memory_limit = -1 post_max_size = 32M upload_max_filesize = 16M session.upload_progress.enabled = 0
- 不需要上传文件时,
post_max_size可设为8M;需要文件上传时保持32M,并确保upload_max_filesize小于post_max_size。 - 如有反向代理或网关,建议在代理层同时限制请求体大小、表单字段数、multipart 分片数、请求头数量和嵌套深度。
- 使用 PHP-FPM 时,建议通过
php_admin_value[memory_limit]设置;Apache mod_php 可使用php_admin_value memory_limit -1,避免被应用中的ini_set()覆盖。 - 修改后必须重启 XXD / Zbox / Apache / PHP-FPM,使所有工作进程加载新配置。
这些措施只能降低风险,不能完全消除漏洞。PHP 官方指出,只有更新到修复版本才是完整的解决方案;因此仍建议尽快替换为修复后的 PHP 运行时。
联系人:杨晓敏
电话/微信:18553229903
Email:yangxiaomin@chandao.com
QQ:3831317182
地址:山东省青岛市黄岛区长江西路118号青铁广场18楼

联系我们
社群交流