产品与技术栈 · 托管平台与服务器管理服务
Azure App Service (PHP) 与 PHP2Shell:是否受影响、怎么修复
如何查看 Azure App Service (PHP) 用的 PHP 版本
按你的环境执行下面的命令。同分支内版本不低于 8.2.35、8.3.36、8.4.27 或 8.5.12 即已修复;更老的分支只有厂商明确说明的构建才算修复。
php --version
echo $PHP_VERSION在应用的 SSH 控制台里运行(Kudu WebSSH:https://<应用名>.scm.azurewebsites.net/webssh/host)。门户里的 Stack settings 会显示 PHP 主次版本和平台发布通道。
命令行的 php 可能和实际服务网站的 PHP 不是同一个。要确认的话,检查 Web SAPI(放一个需要登录的临时 phpinfo() 页面,或看面板的 PHP 设置),用完删掉。本站的版本检查器可以帮你对比版本号。
🔎 拿到版本号后,可以粘贴到 PHP2Shell 检测工具里核对 →
如何修复 Azure App Service (PHP) 中的 PHP2Shell
- 如果应用在 Extended 平台发布通道上,改成 Standard 或 Latest(门户 → 你的应用 → Stack settings → Platform Release Channel → 保存)。面向公网或高风险的应用,微软建议选 Latest。
- 通过 SSH 确认运行中的版本是 8.2.35、8.3.36、8.4.27、8.5.12 或更新;如果还是旧版本,重启应用。
- 自定义容器或自带的 PHP:用已修复的 PHP 版本重新构建镜像并重新部署,Azure 不会替你打补丁。
- PHP 8.1 及更早:换通道没用,要把应用迁到受支持的 PHP 版本并测试。
- 用 Alpine 镜像的 WordPress on App Service:迁到 Debian 镜像。
- 安装上面列出的厂商修复版本或软件包。
- 重启所有 PHP 进程(PHP-FPM 进程池、带 mod_php 的 Apache、LiteSpeed lsphp、队列 worker),运行中的进程会把旧 PHP 留在内存里。
- 再用上面的检查命令确认正在运行的版本。
想让 AI agent 帮你检查? 先检查是否受影响 · 用 AI Agent 修复
暂时无法打补丁时
- 在应用无法覆盖的地方设置
session.upload_progress.enabled = 0(php.ini、FPM 进程池或 Apache 配置里的php_admin_value),并重启 PHP。 - PHP 8.5 上设置
fatal_error_backtraces = 0。 - PHP 的临时建议还涉及
memory_limit和较低的post_max_size,请严格按修复页面操作,这些设置只能堵住部分路径。 - 如果跑的是 PHP 8.1 或更早且没有厂商反向移植,限制访问(VPN、IP 白名单)或下线服务。WAF 规则有帮助,但不是修复。
常见问题
Azure App Service (PHP) 受 PHP2Shell 影响吗?
受影响;只有部分版本或组件有修复。 App Service 团队表示,Linux 版 App Service 内置 PHP 镜像的修复版已于 2026 年 10 月 21 日在 Latest 和 Standard 两个平台发布通道全部推送完成:PHP 8.2.35、8.3.36、8.4.27、8.5.12。Extended 通道最后才拿到修复。自定义容器和自带的 PHP 运行时 Azure 不负责打补丁,已停止支持的 PHP 版本不会修复,仍在用 Alpine 镜像的 WordPress on App Service 也不会修复(微软建议按其指南迁到 Debian 镜像)。这篇公告只讲 Linux,没有提 Windows 上的 PHP。
只更新 Azure App Service (PHP) 本身能修复 CVE-2026-109618 和 CVE-2026-109619 吗?
只有更新里包含修复版 PHP 才行。PHP2Shell 是 PHP 解释器的漏洞,关键是 Azure App Service (PHP) 运行在哪个 PHP 上。更新后请核对版本。
哪些 PHP 版本修复了 PHP2Shell?
2026 年 10 月 21 日发布的 PHP 8.2.35、8.3.36、8.4.27 和 8.5.12。PHP 8.1 及更早版本官方不发新版本,只有带反向移植的厂商构建(或自行用 7.4、8.0、8.1 源码补丁编译)才能修复。
Azure App Service (PHP) 还没有修复怎么办?
不要让它基于 PHP 的网页界面暴露在公网(用 VPN 或 IP 白名单),应用 PHP 的临时设置(如关闭 session upload progress),厂商一出更新就安装。临时设置能降低风险,但不是修复。
相关产品
- Laravel Forge需更新系统或主机 PHP
- RunCloud厂商未发声明
- ServerPilot厂商未发声明
- AWS: Amazon Linux, Elastic Beanstalk, Lightsail部分修复
来源
- Azure App Service blog: Critical PHP security release (21 Oct 2026)
- PHP advisory GHSA-w8hw-w9fx-j79w
- PHP advisory GHSA-6wmf-4rv5-p3rp
出站链接将离开本站。本站不托管利用代码。
这是对公开资料的非官方整理。本站与厂商和 PHP 项目无关,不提供任何利用代码。