CakePHP 网站修复 PHP2Shell,需要修补实际运行的 PHP 解释器。应用版本用于识别兼容障碍,不能单独证明网站可被利用,也不能证明两个 CVE 已修复。
CakePHP - 修复 PHP2Shell 要核对哪些 PHP 兼容版本
| 发布版本样本 | 声明的 PHP 要求 | 声明允许的补丁候选 | 原始来源 |
|---|---|---|---|
| 3.10.5 | >=5.6.0,<8.0.0 | 这些补丁基线均不匹配 ↗ | repo.packagist.org ↗571fb867995c |
| 4.4.18 | >=7.4.0 | repo.packagist.org ↗34b4920bc8c1 | |
| 4.5.12 | >=7.4.0,<8.4 | repo.packagist.org ↗cc9dbe1fbcb1 | |
| 5.0.11 | >=8.1 | repo.packagist.org ↗19af8494b1f2 | |
| 5.1.10 | >=8.1 | repo.packagist.org ↗1b06accdee89 | |
| 5.2.15 | >=8.1 | repo.packagist.org ↗d1e4a9327c6c |
候选仅将该声明与受支持分支的首个 PHP2Shell 修复版本比对,不代表已经通过兼容测试、仍有厂商支持或全部依赖均匹配。 修复 PHP2Shell 要核对哪些 PHP 兼容版本 ↗
确认 PHP2Shell 修复范围
文件与软件包身份
cakephp/cakephp
composer.lockconfig/app.phpsrc/Model/
CakePHP - 排除 PHP2Shell 修复中的兼容障碍
CakePHP 3.10.5 明确排除 PHP 8,样本 4.5.12 也限制 PHP 低于 8.4。跨大版本要逐个阅读 ORM 和应用迁移文档。检查 entity 方法签名、自定义 finder,以及独立的认证和授权插件。应执行代表性查询和表单提交,安装检查不能代替业务验证。
需要排查的依赖与二次开发
官方升级文档 ↗PHP2Shell 修复后的业务验收
修复 PHP2Shell 前的只读盘点
命令示例
php -v
php --ini
composer --no-plugins show --locked cakephp/cakephp
composer --no-plugins check-platform-reqs --lock
composer --no-plugins prohibits php 8.3.36 --lockedCakePHP - 核实 PHP2Shell 修复
在真正承载本站请求的 PHP 中核实两个 CVE 的补丁。替换或重启旧 Web 工作进程、队列进程和全部副本。首页能打开或 CLI 版本变新,都不足以证明修复完成。
3. 重启并验证所有实例 ↗