PHP 8.2–8.5 修复版本已发布 独立社区资源 · 事实核实于 2026年10月22日

PHP2Shell 检测工具 / AlmaLinux 升级 PHP

AlmaLinux、RHEL、Rocky Linux 升级 PHP 修复 PHP2Shell

用 dnf 升级 PHP 相关的包,再重启 PHP-FPM(用 mod_php 的还要重启 httpd)。Red Hat 已于 2026 年 10 月 21 日修复大部分 AppStream 模块流,AlmaLinux 公告列出的模块流都已修复,Remi 源已有 8.2.35~8.5.12。截至 2026年10月22日,RHEL 9 的 php:8.4 模块仍没有修复包。

PHP2Shell.help 编辑部核实日期 官方来源 ↓

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.28.2.35
PHP 8.38.3.36
PHP 8.48.4.27
PHP 8.58.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 HatAlmaLinuxRocky
8 php:7.4RHSA-2026:87080(7.4.33-8)7.4.33-8已发布
8 php:8.2RHSA-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.2RHSA-2026:87072(8.2.35-1)8.2.33-1…alma.1已发布
9 php:8.3RHSA-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.4RHSA-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 的步骤是什么?

  1. 按 AlmaLinux 公告执行 sudo dnf clean metadata && sudo dnf upgrade 'php*'。php* 也会匹配 php83-php-fpm 这类 Remi SCL 包。
  2. 如果之前启用过 testing 源,用 sudo dnf config-manager --disable almalinux-testing 关掉。
  3. 用 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 的勘误里。

检测你的 PHP 是否受 PHP2Shell 影响

输入网站使用的 PHP 版本,我们会和该分支的首个修复版本比较,并告诉你下一步怎么做。

PHP2Shell 检测工具 →

来源

本页的核心事实(修复版本、CVE 详情、发行版软件包、官方机构的提醒)都来自官方来源;研究报告、新闻和社区讨论已分别标注。