<?php 独立的 PHP 安全检查
您的 PHP 是否受 PHP2Shell 影响?
PHP 本身存在两个严重漏洞,可导致远程代码执行。这些漏洞已于 2026 年 10 月 21 日修复。您可以检查网站公开了哪些 PHP 版本信息,或粘贴版本字符串,然后查看具体应采取的措施。
- 被动检查:仅一次普通请求,不含漏洞利用
- 免费、无需注册、无广告
- 依据 php.net 与官方安全公告
2检测版本
在您的浏览器中判断,不会向我们发送任何内容。每行一个版本,最多 20 个。
01 · php.net · 2026-10-23
已修复版本
| 分支 | 修复版本 | 分支状态 |
|---|---|---|
| PHP 8.5 | 8.5.12 | 积极支持中 |
| PHP 8.4 | 8.4.27 | 积极支持中 |
| PHP 8.3 | 8.3.36 | 仅提供安全修复 |
| PHP 8.2 | 8.2.35 | 仅提供安全修复 — 2026 年 12 月 31 日停止支持 |
| PHP 8.1 · 8.0 · 7.x · 5.x | 无官方版本 | 已停止支持 — PHP 项目不再发布版本 |
来源:php.net 安全公告,2026 年 10 月 21 日。最后核实于 2026-10-23。
什么是 PHP2Shell?
PHP2Shell 是研究人员为 PHP 引擎中两个漏洞取的名称:CVE-2026-109618(PHP 在解析请求时内存耗尽导致的内存损坏)和 CVE-2026-109619(同一工作进程上的内部状态从一个请求残留到下一个请求)。两者的 CVSS v4.0 评分均为 9.2。
未经身份验证的攻击者可以在服务器上执行代码,或者无需运行任何代码即可读取 PHP 进程内存 — 其中包括属于其他请求的密码、会话令牌、API 密钥和证书。据 php.net 称,受影响的是处理 Web 请求的 PHP,包括 PHP-FPM、使用 mod_php 的 Apache、php-cgi、FrankenPHP 和 LiteSpeed。研究人员演示了针对 WordPress、Drupal 和 Joomla 的攻击,但并不需要特定的应用程序:在受影响的 PHP 上,即使是一个简单的“Hello World”页面也会暴露。
现在该做什么
- 更新到 8.5.12、8.4.27、8.3.36 或 8.2.35,或使用您所用发行版的已修补软件包。
- 重启所有 PHP 进程:PHP-FPM、Apache、队列工作进程、容器。重启之前,更新不会生效。
- 检查服务器上的每一个 PHP:控制面板通常会同时安装多个版本。
02 · shell
在服务器上直接检查
网站检测只能看到服务器选择公开的信息。在服务器上运行以下命令可以得到确切答案:
# 默认 PHP 的版本
php -v
# 由面板或软件包安装的其他 PHP 版本
ls -d /usr/bin/php* /usr/sbin/php-fpm* /opt/alt/php*/usr/bin/php /opt/cpanel/ea-php*/root/usr/bin/php /opt/plesk/php/*/bin/php 2>/dev/null
# 与部分缓解措施相关的设置
php -i | grep -E 'session.upload_progress.enabled|post_max_size|memory_limit|fatal_error_backtraces'
# 您的网站向访客公开的信息
curl -sI https://your-site.com/ | grep -i -E '^(x-powered-by|server):'
03 · FAQ
常见问题
哪些 PHP 版本受影响?
受支持分支中 8.5.12、8.4.27、8.3.36 和 8.2.35 之前的所有版本。PHP 8.1 及更早版本已停止支持,PHP 项目不会为其发布新版本;除非您的供应商确认已向后移植修复,否则请视为受影响。
我的网站没有显示 PHP 版本。我安全吗?
不一定。隐藏版本(expose_php = Off)是良好做法,但并不能修补任何问题。请在服务器上用 php -v 检查,或咨询您的服务商。
检测工具显示的是旧版本,但主机商说已经修补。谁是对的?
可能都对。Debian、Ubuntu 和 RHEL 等 Linux 发行版经常在不改变版本号的情况下向后移植安全修复。请询问主机商安装的是哪个软件包构建,以及其更新日志中是否提到 CVE-2026-109618 和 CVE-2026-109619。
WordPress、Laravel 或我的 CMS 受影响吗?
漏洞在 PHP 本身,因此运行在受影响 PHP 上的任何应用程序都会暴露。研究人员演示了针对 WordPress、Drupal 和 Joomla 的无需认证的攻击,但这些只是示例 — 即使是一个普通的“Hello World”页面也足够了。仅更新 WordPress 或插件无法解决问题 — 必须更新 PHP。
即使没有执行代码,数据也会泄露吗?
会。CVE-2026-109619 可以在攻击者不运行代码的情况下泄露 PHP 进程内存 — 包括其他请求的密码、会话令牌、API 密钥和证书。此类泄露不会留下文件,难以检测,因此请更换在互联网上运行过受影响版本的任何网站的机密信息。