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

PHP2Shell 检测工具 / Windows 升级 PHP

Windows、IIS 升级 PHP 修复 PHP2Shell

Windows 上要下载官方 Windows 版 PHP(8.2.35、8.3.36、8.4.27 或 8.5.12,IIS 用 Non Thread Safe 的 x64 版),让 IIS 的 FastCGI 指向新的 php-cgi.exe,重启 IIS,再从网站确认版本。PHP 官方没有发布 7.4、8.0、8.1 的 Windows 版。

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

Windows 上的 PHP 受 PHP2Shell 影响吗?

受影响。PHP2Shell(CVE-2026-109618、CVE-2026-109619)是 PHP 本身的漏洞,只要 Windows 服务器或电脑上跑的 PHP 低于所在分支的修复版本,不管用哪种 Web 服务器都受影响。IIS 通过 FastCGI(php-cgi.exe)运行 PHP,属于 PHP 安全公告要求升级的 Web 部署方式。修复版本如下:

分支首个修复版本
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 有官方源码补丁)

怎么查 IIS 用的是哪个 PHP 版本?

要查 IIS 实际调用的 PHP,而不是命令行里的那个。命令提示符里的 php -v 显示的是 PATH 中第一个 php.exe,可能和 IIS 用的 php-cgi.exe 不是同一份。在 IIS 管理器的“处理程序映射”里查看 *.php 对应的可执行文件路径,那个文件夹就是网站在用的 PHP。从网站一侧,可以用 WordPress 站点健康或临时的 php_sapi_name() 页面确认,IIS 下会显示 cgi-fcgi。测试页面用完要删掉。更多方法见 查看 PHP 版本。

官方的 Windows 修复版发布了吗?

已发布。2026 年 10 月 21 日,四个修复版本的 Windows 版都上传到了官方 Windows 发布目录。原来的 windows.php.net 下载页现在会跳转到 php.net 的 Windows 下载页,上面列有文件大小和 SHA256。IIS 适用的 x64 NTS 文件如下:

PHP 分支文件(NTS、x64)编译器
8.2php-8.2.35-nts-Win32-vs16-x64.zipVS16
8.3php-8.3.36-nts-Win32-vs16-x64.zipVS16
8.4php-8.4.27-nts-Win32-vs17-x64.zipVS17
8.5php-8.5.12-nts-Win32-vs17-x64.zipVS17

Thread Safe 版和 x86 版在同一目录。PHP 下载页说明,这些版本需要 Visual C++ Redistributable for Visual Studio 2015-2022。7.4、8.0、8.1 没有新的 Windows 文件,最新的文件分别是 2024 年和 2025 年的,早于 PHP2Shell。

IIS 上怎么升级 PHP?

  1. 下载当前所用分支的 NTS x64 压缩包,并和 php.net 上的 SHA256 核对。不要用第三方镜像或捆绑包里的压缩包。
  2. 解压到新的文件夹,把原来的 php.ini 复制过去,并确认自己额外加载的扩展有对应新版本的文件。
  3. 在 IIS 管理器中,把 *.php 的处理程序映射和 FastCGI 设置改为新文件夹里的 php-cgi.exe。PHP 的 IIS 安装说明介绍了这个映射,也给出了用 APPCMD 脚本配置的示例。
  4. 如果没装 Visual C++ Redistributable,先装上。

同一分支内升级(比如 8.3.x 升到 8.3.36)最不容易引起程序兼容问题;跨分支升级建议另行规划和测试。

怎么重启 IIS 并复查?

重启 IIS,确保没有旧的 php-cgi.exe 进程继续运行:在 IIS 管理器中选中服务器节点,点“操作”窗格里的“重新启动”,或者在管理员命令提示符里运行 iisreset /restart(见 Microsoft 的 IIS 文档))。重启会断开当前会话,最好选访问少的时段。之后用站点健康或测试页确认新版本,并填进 PHP 版本检测。如果在 Windows 上用的是 Apache,则使用 Thread Safe 版,替换后重启 Apache 服务。

升级后还显示旧版本,为什么?

常见原因:IIS 没重启,旧的 php-cgi.exe 还在运行;处理程序映射仍指向旧文件夹;服务器上有多份 PHP,改的不是网站用的那份;或者有多台服务器只改了其中一台。逐项检查后再从网站一侧确认版本。

用 XAMPP 这类集成环境的怎么办?

XAMPP 等集成环境自带一份 PHP,系统里另装的 PHP 改不到它。截至 2026年10月22日,Apache Friends 提供的 XAMPP 最新版仍是 PHP 8.2.12,没有发布包含修复的版本。只在本机开发、外部访问不到的环境风险较低;如果局域网或公网能访问到,要先限制访问或停用。命令行脚本和计划任务如果调用 PHP,升级后也要改成新的路径。

暂时没法升级怎么办?

先在 php.ini 里使用 PHP 官方的临时措施,比如关闭 session.upload_progress.enabled、调低 post_max_size,然后重启 IIS。这些只能挡住部分攻击路径,完整列表和限制见 临时缓解。

Windows 上还在用 PHP 7.4、8.0、8.1 怎么办?

PHP 官方给 7.4、8.0、8.1 的修复只有源码补丁,没有发布 Windows 二进制版本。在 Windows 上,现实的办法是升级到 8.2 或更高版本。选项见 PHP 停止维护版本,再用 PHP2Shell 修复 和 PHP2Shell 检测 确认现状。

IIS 该用 Thread Safe 还是 Non Thread Safe 版?

用 Non Thread Safe(NTS)。PHP 下载页说明 NTS 版用于 FastCGI(IIS 的运行方式),Thread Safe 版用于 Apache 模块方式,并推荐使用 x64 版。

Windows 更新会修复 PHP2Shell 吗?

不会。PHP 是从 php.net 单独下载的软件,不属于 Windows 系统,Windows 更新不管它。需要自己安装新的 PHP 压缩包,或者等捆绑 PHP 的产品发布更新。

检测你的 PHP 是否受 PHP2Shell 影响

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

PHP2Shell 检测工具 →

来源

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