非 php.net · 非 NVD · 非 CISA

PHP 漏洞追踪

关于 PHP 安全漏洞的非官方简报

English简体中文日本語Deutsch

安全警报

PHP2Shell:请升级 PHP。这是唯一完整的修复。

CVE-2026-109618 与 CVE-2026-109619 是 PHP 本体中的严重漏洞,未经身份验证即可远程执行代码。PHP 项目已于 2026 年 10 月 21 日为仍受支持的 8.2 至 8.5 分支发布修复。升级后必须重启 PHP。防火墙不能替代升级。

修复步骤

修复

如何修复 PHP2Shell:升级 PHP 并重启工作进程

PHP 项目、AWS 和 CISA 在操作结论上一致:对 CVE-2026-109618 和 CVE-2026-109619,升级是唯一完整的修复。下面的命令是这类工作的常见形状。软件包版本仍然取决于发行版自己的公告。命令行打出一个已修复的版本,并不能证明网站后面的进程池已经重启到那个二进制文件。

最近更新

目标版本

源码包和 Windows 构建在 PHP 下载页。php.net 称 Linux 发行版和 LTS 厂商在公开释放之前就拿到了补丁,因此发行版软件包往往是正确路径。同一则说明称,志愿者维护的 Remi 仓库 rpms.remirepo.net 在 10 月 21 日不会有这些更新,并敦促依赖它的人改用发行版软件包或从源码构建。

Debian、Ubuntu 及其他 apt 系统

刷新元数据,并安装你的软件源实际发布的 php 更新。包名跟随次版本(php8.3-fpm、php8.3-cli、php8.3-common,若使用 mod_php 还有 Apache 模块包)。如果候选版本仍低于修复版本,你是在等发行版,而不是少打了一个参数。

8.3 软件包的示例 apt 流程。在认为完成之前,确认候选版本不低于 8.3.36。
sudo apt-get update
apt-cache policy php8.3-cli php8.3-fpm php8.3-common
sudo apt-get install --only-upgrade php8.3-cli php8.3-fpm php8.3-common
php8.3 -v
# 看 Web SAPI,而不只是命令行:
php-fpm8.3 -v
sudo systemctl restart php8.3-fpm
# 若 Apache 加载了 mod_php,也要重启 Apache:
sudo systemctl restart apache2

RHEL、Alma、Rocky、Fedora:dnf 或 yum

示例 dnf 流程。在更老的衍生版上,yum update php php-fpm php-cli 是同一件事。版本字符串以厂商勘误为准。
sudo dnf clean expire-cache
sudo dnf update php php-cli php-fpm php-common
php -v
php-fpm -v
sudo systemctl restart php-fpm
# httpd 下的 mod_php:
sudo systemctl restart httpd

Docker 及其他镜像

重新构建并重新部署。拉取新的基础镜像,在替换掉真正提供流量的工作负载之前不会生效。官方镜像标签通常跟随 PHP 版本;固定标签之前,先在 Docker Hub 上确认它存在。Google Cloud 对 Cloud Run 和 GKE 的说明是同一件事:重建你部署的镜像,除非你用的是 Google 说它正在替你更换的无服务器基础镜像。

固定一个已修补的标签,重新构建,并替换服务。apache 标签是官方镜像里接近 mod_php 的变体;请沿用你已经在跑的那一种。
FROM php:8.3.36-fpm
# 或者:php:8.3.36-apache、php:8.4.27-fpm、php:8.2.35-fpm、php:8.5.12-cli

# 然后在主机上:
# docker pull php:8.3.36-fpm
# docker build -t your-app:php2shell-fix .
# 重新部署,并确认正在运行的容器中的 PHP 版本

cPanel

  1. 先更新 cPanel 本身,让 EasyApache 能够提供已修补的 PHP 构建。菜单会变;如果标签不同,以 cPanel 文档为准。
  2. 在 WHM 中打开 EasyApache 4,配置不低于该分支修复版本的 PHP。MultiPHP Manager 用来把域名指向特定 PHP 版本。
  3. 把面向互联网的域名从 PHP 8.1 或更老的处理程序上移开,除非厂商明确说该构建包含回移植。
  4. 在 WHM 中重启 Apache 和 PHP-FPM,然后用检查进程池的同一方式核对域名的 PHP 版本,并删除临时探测页面。

Plesk

  1. 安装 Plesk 和系统软件包更新。当前的点击路径见 Plesk 文档。
  2. 在“工具与设置”中查看更新和 PHP 处理程序列表。域名的 PHP 设置显示订阅实际运行的版本。
  3. 选择已修补的处理程序(8.2.35、8.3.36、8.4.27 或 8.5.12,或你已核实的厂商构建)。先应用到公开站点。
  4. 重启 Plesk 正在使用的 PHP 服务,并对着域名而不是仅仅对着面板主机做版本确认。

宝塔面板

宝塔于 2026 年 10 月 22 日更新的公告称,Linux 与 Windows 面板已同步 8.2.35、8.3.36、8.4.27 和 8.5.12。仅 Linux 的 7.4.34、8.0.31 和 8.1.35 是宝塔自己的包,不是 PHP 项目的发行版。点击路径和 Windows 上并不完整的设置写在宝塔页面。

mod_php 与 PHP-FPM 的差别

两者都在 PHP 项目的风险名单上。mod_php 风险最高,因为已演示的未授权路径在应用代码之前触发。重启 Apache 才会重新加载 mod_php。PHP-FPM 是单独的进程:重启每一个进程池(systemctl restart php8.3-fpm,或对应的单元),并记住进程池可以固定自己的二进制文件。shell 的 PATH 上的 php 可能与进程池不是同一个构建。FrankenPHP、php-cgi 和 LiteSpeed 被 PHP 列为提供网页请求,因此在范围内;请遵照这些厂商自己的升级说明,不要假定一个 apt 的 php-fpm 包覆盖了它们。

临时措施:PHP 称它们并不完整

只把这些当作从 php.net 公告抄来的过渡。它们降低特定路径的暴露,不能让主机变得安全。把它们放进 php.ini,或放进管理员级别的进程池或 Apache 设置(php_admin_value)。按照 PHP 的说法,对 session 上传这条路径,ini_set() 和目录级 .user.ini 发生得太晚。

CVE-2026-109618

CVE-2026-109619

Web 应用防火墙

CISA 称,在系统完成更新之前,Web 应用防火墙可能提供一些保护。Cloudflare 称覆盖此问题的托管规则自 2026 年 10 月 21 日 03:02 UTC 起对免费和付费 WAF 客户部署,是在禁运期内与 PHP Foundation 等一起开发的,并且仍然要求客户修补。规则可以被绕过。Cloudflare 自己的文章称,它看到载荷在变化,攻击者试图绕过规则。保留 WAF。不要把它当作修复。

升级之后

来源

出站链接将离开本站。本站不托管利用代码。

  1. News archive 2026: security advisory, 21 October 2026 — PHP project (php.net)
  2. PHP downloads — PHP project (php.net)
  3. Today’s PHP security release, and how we’re strengthening PHP security — The PHP Foundation
  4. Critical vulnerabilities in PHP require immediate patching (21 October 2026) — CISA
  5. Amazon Threat Intelligence identifies PHP2Shell exploitation prior to public disclosure in MadPot — AWS Security Blog
  6. Cloudflare deploys protections against php2shell vulnerability — Cloudflare
  7. Critical security issue affecting PHP — UK NCSC
  8. Notice: php2shell, critical PHP vulnerabilities (status as of 21 October 2026, 20:00 UTC) — Expel
  9. Responding to core PHP vulnerabilities CVE-2026-109618 and CVE-2026-109619 — Google Cloud
  10. php image on Docker Hub — Docker Official Images
  11. cPanel documentation — cPanel
  12. Plesk documentation — Plesk
  13. PHP 与 Node.js 紧急安全更新公告(更新于 2026-10-22) — 宝塔面板 (BT Panel)
  14. php2shell product-inventory notes — NCSC-NL