Hyperf 网站修复 PHP2Shell,需要修补实际运行的 PHP 解释器。应用版本用于识别兼容障碍,不能单独证明网站可被利用,也不能证明两个 CVE 已修复。
Hyperf - 修复 PHP2Shell 要核对哪些 PHP 兼容版本
| 发布版本样本 | 声明的 PHP 要求 | 声明允许的补丁候选 | 原始来源 |
|---|---|---|---|
| v2.2.33 | >=7.2 | repo.packagist.org ↗49e98fb74721 | |
| v3.0.45 | >=8.0 | repo.packagist.org ↗7ea476d31ffc | |
| v3.1.63 | >=8.1 | repo.packagist.org ↗c2a980881d77 |
候选仅将该声明与受支持分支的首个 PHP2Shell 修复版本比对,不代表已经通过兼容测试、仍有厂商支持或全部依赖均匹配。 修复 PHP2Shell 要核对哪些 PHP 兼容版本 ↗
确认 PHP2Shell 修复范围
文件与软件包身份
hyperf/framework
composer.lockbin/hyperf.phpconfig/autoload/
Hyperf - 排除 PHP2Shell 修复中的兼容障碍
Hyperf 使用长驻进程,常依赖 Swoole 或 OpenSwoole。先对齐 hyperf/*、协程客户端和扩展 ABI。只重启反向代理会留下旧应用进程。应测试连接池恢复、队列消费者和定时任务,再按项目的平滑发布流程替换全部工作进程。
需要排查的依赖与二次开发
官方升级文档 ↗PHP2Shell 修复后的业务验收
修复 PHP2Shell 前的只读盘点
命令示例
php -v
php --ini
composer --no-plugins show --locked hyperf/framework
composer --no-plugins check-platform-reqs --lock
composer --no-plugins prohibits php 8.3.36 --locked
php --ri swoole
php --ri openswooleHyperf - 核实 PHP2Shell 修复
在真正承载本站请求的 PHP 中核实两个 CVE 的补丁。替换或重启旧 Web 工作进程、队列进程和全部副本。首页能打开或 CLI 版本变新,都不足以证明修复完成。
3. 重启并验证所有实例 ↗