ThinkPHP 网站修复 PHP2Shell,需要修补实际运行的 PHP 解释器。应用版本用于识别兼容障碍,不能单独证明网站可被利用,也不能证明两个 CVE 已修复。

ThinkPHP - 修复 PHP2Shell 要核对哪些 PHP 兼容版本

候选仅将该声明与受支持分支的首个 PHP2Shell 修复版本比对,不代表已经通过兼容测试、仍有厂商支持或全部依赖均匹配。 修复 PHP2Shell 要核对哪些 PHP 兼容版本 ↗

确认 PHP2Shell 修复范围

文件与软件包身份

topthink/framework

  • composer.lock
  • thinkphp/base.php
  • app/

ThinkPHP - 排除 PHP2Shell 修复中的兼容障碍

ThinkPHP 5.0、5.1、6、8 需要分别评估迁移。核对 topthink/framework、独立 ORM 和模板包;直接复制 thinkphp 目录的项目可能没有锁文件。重点检查路由、中间件、旧行为扩展和自定义标签。不要在线上只覆盖框架目录,也不要把最低 PHP 要求当作 PHP 8 兼容保证。

需要排查的依赖与二次开发

  • topthink/think-orm
  • topthink/think-view
  • topthink/think-template
  • route/
  • app/middleware/
  • extend/
  • think-queue
官方升级文档 ↗

PHP2Shell 修复后的业务验收

修复 PHP2Shell 前的只读盘点

在授权的工作副本中操作。

命令示例
php -v
php --ini
composer --no-plugins show --locked topthink/framework
composer --no-plugins check-platform-reqs --lock
composer --no-plugins prohibits php 8.3.36 --locked

ThinkPHP - 核实 PHP2Shell 修复

在真正承载本站请求的 PHP 中核实两个 CVE 的补丁。替换或重启旧 Web 工作进程、队列进程和全部副本。首页能打开或 CLI 版本变新,都不足以证明修复完成。

3. 重启并验证所有实例 ↗

官方升级文档

ThinkPHP原始来源 ↗PHP security team原始来源 ↗CVE-2026-109618原始来源 ↗CVE-2026-109619原始来源 ↗修复 PHP2Shell 时的 PHP 升级报错排查↗

相关系统

← 返回应用升级资料库