AlmaLinux、RHEL、Rocky Linux 受 PHP2Shell 影响吗?
受影响。Red Hat 安全公告 RHSB-2026-013 列出 RHEL 8、9、10 受影响,并说明 RHEL 7 及更早版本自带的 PHP 不受影响。AlmaLinux 和 Rocky Linux 与 RHEL 兼容,对应的模块流同样受影响。Red Hat 把严重程度定为 Important,并说明 RHEL 默认用 PHP-FPM 而不是 mod_php,但只要 PHP 在处理网页请求,就需要升级。PHP 官方修复版本如下:
| 分支 | 首个修复版本 |
|---|---|
| PHP 8.2 | 8.2.35 |
| PHP 8.3 | 8.3.36 |
| PHP 8.4 | 8.4.27 |
| PHP 8.5 | 8.5.12 |
| 8.1 及更早 | 无新发行版(7.4、8.0、8.1 有官方源码补丁) |
RHEL 系的包通常保留旧版本号、只回移补丁,所以要看包的完整版本,不能只看 PHP 版本号。
怎么查服务器用的是哪个 PHP 包?
用包管理器查。AlmaLinux 公告用的是 rpm -q php-common(AlmaLinux 10 的 PHP 8.4 用 rpm -q php8.4-common);在 EL 8、9 上,dnf module list php 能看到启用了哪个模块流。php -v 只显示命令行(CLI)的 PHP,而且回移补丁不会改变版本号。网站也可能跑在 Remi 的 SCL 等另一个 PHP 上,要用 WordPress 站点健康或临时的 php_sapi_name() 页面确认网站实际使用的 PHP(PHP-FPM 显示 fpm-fcgi)。详见 查看 PHP 版本。
Red Hat、AlmaLinux、Rocky 发布修复了吗?
基本都发布了(2026 年 10 月 21 日;Rocky 在 UTC 22 日凌晨)。请安装不低于下表的版本:
| 版本与模块流 | Red Hat | AlmaLinux | Rocky |
|---|---|---|---|
| 8 php:7.4 | RHSA-2026:87080(7.4.33-8) | 7.4.33-8 | 已发布 |
| 8 php:8.2 | RHSA-2026:87073(8.2.35-1) | 8.2.33-1…alma.1 | 未发布 |
| 9 默认 php(8.0) | RHSA-2026:87151(8.0.30-8.el9_8.1) | 8.0.30-8.el9_8.alma.1 | 已发布 |
| 9 php:8.2 | RHSA-2026:87072(8.2.35-1) | 8.2.33-1…alma.1 | 已发布 |
| 9 php:8.3 | RHSA-2026:87079(8.3.36-1) | 8.3.33-1…alma.1 | 已发布 |
| 9 php:8.4 | 受影响,暂无修复 | 未列出 | — |
| 10 php(8.3) | RHSA-2026:87070(8.3.36-1.el10_2) | 8.3.33-1.el10_2.alma.1 | 已发布 |
| 10 php8.4 | RHSA-2026:87071(8.4.27-1.el10_2) | 8.4.24-1.el10_2.alma.1 | 已发布 |
AlmaLinux 还修复了已停止维护的 EL 8 php:7.2、7.3、8.0 和 EL 9 php:8.1。完整版本号见 AlmaLinux 公告、Red Hat 的 CSAF 数据 和 Rocky 的勘误。AlmaLinux 自己的回移补丁比 Red Hat 先发布,所以版本号低于 Red Hat 的包,两者都包含修复。
Remi 源: 10 月 21~22 日,Remi 源在 remi-modular(模块)和 remi-safe(php82~php85 的 SCL)发布了 8.2.35、8.3.36、8.4.27、8.5.12(EL 9 列表)。7.4.33-31、8.0.30-21、8.1.34-6 的更新日志写有针对两个 CVE 的 “Mitigation fix”。截至 2026年10月22日,Remi 博客还没有相关公告。
AlmaLinux 升级 PHP 的步骤是什么?
- 按 AlmaLinux 公告执行
sudo dnf clean metadata && sudo dnf upgrade 'php*'。php*也会匹配 php83-php-fpm 这类 Remi SCL 包。 - 如果之前启用过 testing 源,用
sudo dnf config-manager --disable almalinux-testing关掉。 - 用
rpm -q php-common对照上表。
Red Hat 勘误里附有通用的更新说明。RHEL 9 的 php:8.4 目前没有修复包,只能换到已修复的模块流,或先做下面的临时缓解。服务器有多台、或一台机器装了多个 PHP 时,网站实际在用的都要升级。
怎么重启 PHP-FPM 并复查?
执行 sudo systemctl restart php-fpm 重启 PHP-FPM;用 mod_php 的(仅 AlmaLinux 8)再执行 sudo systemctl restart httpd,是否加载 mod_php 可用 httpd -M 2>/dev/null | grep -E 'mpm_|php' 查看。Remi SCL 的 FPM 服务也要重启。最后从网站一侧确认 PHP,并把包版本填进 PHP 版本检测。
升级后网站还是显示旧状态,为什么?
常见原因有这几种:
- PHP-FPM 没重启:旧的 worker 进程还在运行旧代码,升级包本身不会替换正在运行的进程。
- 改错了 PHP:系统源的 PHP 和 Remi 的 SCL(如 php83)可以同时存在,网站绑定的可能是另一个。
- 模块流没切换:在 EL 8、9 上,启用的是哪个模块流,dnf 就只升级那个流的包。用
dnf module list php确认。 - 还在用 Remi 的老分支包:Remi 的 7.4、8.0、8.1 包更新日志写的是 “Mitigation fix”,不是 PHP 官方发布的新版本;本站没有核实它与官方修复是否等同,长期仍应换到受支持的分支。
- 多台服务器或容器:只升级了其中一台。容器里的 PHP 要单独更新,见 Docker PHP 镜像。
暂时没法升级怎么办?
可以先用 PHP 官方的临时措施:在 /etc/php.d/ 下的配置文件里关闭 session.upload_progress.enabled、调低 post_max_size,然后重启 PHP-FPM。这些只能挡住部分攻击路径,限制见 临时缓解。
php:7.4、8.0、8.1 这些老模块流怎么办?
AlmaLinux 这次也修复了已停止维护的模块流,但表示以后不保证继续修复;PHP 官方对 7.4、8.0、8.1 也只提供源码补丁。请用 sudo dnf module reset php、sudo dnf module enable php:8.2、sudo dnf distro-sync 'php*' 规划迁移。参见 PHP 停止维护版本、PHP2Shell 修复 和 PHP2Shell 检测。
升级后 php -v 还是旧版本号,算修好了吗?
AlmaLinux 把 PHP2Shell 补丁回移进各模块流原有的 PHP 版本,所以 PHP 版本号不变。用 rpm -q php-common 看包的完整版本,再和本页的表对照。
Rocky Linux 会和 RHEL 同时修复吗?
Rocky Linux 重新构建 Red Hat 的更新,会稍晚一些。截至 10 月 22 日凌晨(UTC),Red Hat 的 7 个公告中 Rocky 已发布 6 个,RHEL 8 的 php:8.2 更新还没出现在 Rocky 的勘误里。
来源
本页的核心事实(修复版本、CVE 详情、发行版软件包、官方机构的提醒)都来自官方来源;研究报告、新闻和社区讨论已分别标注。
- Security advisory: Critical remote code execution vulnerabilities, update now官方 The PHP Group
- RCE via OOM corruption官方 The PHP Group
- RCE via stale global state官方 The PHP Group
- php_sapi_name官方 The PHP Group
- Site Health screen官方 WordPress.org
- RHSB-2026-013 (PHP2Shell security bulletin)厂商 Red Hat
- php2shell (CVE-2026-109618, CVE-2026-109619): Patched PHP packages released厂商 AlmaLinux OS Foundation (Jonathan Wright)
- CSAF VEX for CVE-2026-109618 / CVE-2026-109619厂商 Red Hat
- RLSA-2026:870xx Important: php security updates厂商 Rocky Enterprise Software Foundation
- Remi repository package listings and repodata (other.xml changelogs)厂商 Remi Collet (remirepo)
- Remi's RPM repository blog厂商 Remi Collet
- How to apply package updates (linked from every RHSA's Solution)厂商 Red Hat