Laravel 网站修复 PHP2Shell,需要修补实际运行的 PHP 解释器。应用版本用于识别兼容障碍,不能单独证明网站可被利用,也不能证明两个 CVE 已修复。
Laravel - 修复 PHP2Shell 要核对哪些 PHP 兼容版本
| 发布版本样本 | 声明的 PHP 要求 | 声明允许的补丁候选 | 原始来源 |
|---|---|---|---|
| v5.8.38 | ^7.1.3 | 这些补丁基线均不匹配 ↗ | repo.packagist.org ↗78eb4dabcc03 |
| v6.20.45 | ^7.2.5|^8.0 | repo.packagist.org ↗841d842bbdc8 | |
| v7.30.7 | ^7.2.5|^8.0 | repo.packagist.org ↗0fe75bafb870 | |
| v8.83.29 | ^7.3|^8.0 | repo.packagist.org ↗d841a226a50c | |
| v9.52.22 | ^8.0.2 | repo.packagist.org ↗e1cef1030fc3 | |
| v10.50.3 | ^8.1 | repo.packagist.org ↗74e222cee687 | |
| v11.57.0 | ^8.2 | repo.packagist.org ↗4fc41929c950 | |
| v12.70.1 | ^8.2 | repo.packagist.org ↗e09fc54263d1 | |
| v13.38.0 | ^8.3 | repo.packagist.org ↗c42f9abd4a3d |
候选仅将该声明与受支持分支的首个 PHP2Shell 修复版本比对,不代表已经通过兼容测试、仍有厂商支持或全部依赖均匹配。 修复 PHP2Shell 要核对哪些 PHP 兼容版本 ↗
确认 PHP2Shell 修复范围
文件与软件包身份
laravel/framework
composer.jsoncomposer.lockbootstrap/app.php
Laravel - 排除 PHP2Shell 修复中的兼容障碍
接手 Laravel 老项目先找回 composer.lock,再修改约束。Illuminate 组件应配套升级,逐个阅读跨越的大版本升级说明。Horizon、认证组件、Carbon、文件系统适配器要单独核对。首页打开不代表序列化队列任务兼容;切换前协调任务处理与代码版本,切换后替换并重启长驻工作进程。
需要排查的依赖与二次开发
官方升级文档 ↗PHP2Shell 修复后的业务验收
修复 PHP2Shell 前的只读盘点
命令示例
php -v
php --ini
composer --no-plugins show --locked laravel/framework
composer --no-plugins check-platform-reqs --lock
composer --no-plugins prohibits php 8.3.36 --lockedLaravel - 核实 PHP2Shell 修复
在真正承载本站请求的 PHP 中核实两个 CVE 的补丁。替换或重启旧 Web 工作进程、队列进程和全部副本。首页能打开或 CLI 版本变新,都不足以证明修复完成。
3. 重启并验证所有实例 ↗