Symfony 网站修复 PHP2Shell,需要修补实际运行的 PHP 解释器。应用版本用于识别兼容障碍,不能单独证明网站可被利用,也不能证明两个 CVE 已修复。
Symfony - 修复 PHP2Shell 要核对哪些 PHP 兼容版本
| 发布版本样本 | 声明的 PHP 要求 | 声明允许的补丁候选 | 原始来源 |
|---|---|---|---|
| v4.4.51 | >=7.1.3 | repo.packagist.org ↗8f1698ff2a97 | |
| v5.4.54 | >=7.2.5 | repo.packagist.org ↗af61a85f1337 | |
| v6.4.48 | >=8.1 | repo.packagist.org ↗53c3853a101a | |
| v7.4.21 | >=8.2 | repo.packagist.org ↗62b38e9cb02c | |
| v8.0.15 | >=8.4 | repo.packagist.org ↗f93319640546 |
候选仅将该声明与受支持分支的首个 PHP2Shell 修复版本比对,不代表已经通过兼容测试、仍有厂商支持或全部依赖均匹配。 修复 PHP2Shell 要核对哪些 PHP 兼容版本 ↗
确认 PHP2Shell 修复范围
文件与软件包身份
symfony/framework-bundle
composer.locksymfony.lockconfig/bundles.php
Symfony - 排除 PHP2Shell 修复中的兼容障碍
Symfony 要核对整组组件和 Flex recipes,不能只看 framework-bundle。跨大版本前先在原分支处理弃用项。Doctrine、Twig、Messenger、认证器都可能阻挡升级,即使 PHP 已满足最低要求。先在演练环境重建容器,同时验证 HTTP 路由和控制台工作进程。
需要排查的依赖与二次开发
官方升级文档 ↗PHP2Shell 修复后的业务验收
修复 PHP2Shell 前的只读盘点
命令示例
php -v
php --ini
composer --no-plugins show --locked symfony/framework-bundle
composer --no-plugins check-platform-reqs --lock
composer --no-plugins prohibits php 8.3.36 --lockedSymfony - 核实 PHP2Shell 修复
在真正承载本站请求的 PHP 中核实两个 CVE 的补丁。替换或重启旧 Web 工作进程、队列进程和全部副本。首页能打开或 CLI 版本变新,都不足以证明修复完成。
3. 重启并验证所有实例 ↗