安全公告:PHP 核心高危漏洞(PHP2Shell)影响喧喧运行环境,请尽快升级补丁

2026-10-23 15:25:41
喧喧IM
原创
28
摘要:PHP2Shell 漏洞影响喧喧服务端 PHP 运行环境,请按公告完成修复,暂时无法修复的可先采取临时缓解措施。9.x 及以下版本补丁尚在处理中,可先升级至最新已发布的 10.x 并应用修复;计划近期发布的 11.1 将内置修复后的 PHP 运行时。

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
  • 喧喧 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楼

获取方案 获取方案
联系我们
社群交流