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

PHP2Shell 检测工具 / php2shell Laravel

PHP2Shell 与 Laravel:你的 Laravel 应用受影响吗?

Laravel 应用是否受 PHP2Shell(PHP 漏洞)影响,取决于它运行的 PHP 是否低于所在分支的修复版本。升级 Laravel 修不了。Laravel Cloud 已打好补丁;Forge 要逐台升级 PHP,Vapor 要重新部署。最后重启队列 worker、Horizon 和 Octane。

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

我的 Laravel 应用受 PHP2Shell 影响吗?

如果应用运行的 PHP 低于所在分支的修复版本,或者是 PHP 8.1 及更早、又没有发行版补丁,就受影响。PHP2Shell 是 PHP 本身的两个漏洞(CVE-2026-109618 和 CVE-2026-109619)。Laravel 官方在处理进展文章里也说,这是影响网上所有 PHP 应用的极其严重的漏洞。框架本身写得再安全也没用,因为问题出在框架下面的运行环境。

升级 Laravel 或执行 composer update 能修好吗?

不能。Laravel 框架和 vendor 里的依赖都是 PHP 代码,改变不了服务器上的 PHP。Laravel 在 10 月 21 日发布了各产品的处理说明(以当天 23:26 UTC 的更新为准):

  • Laravel Cloud:已就地为所有运行中的应用打补丁,无需重新部署,PHP 已是 8.5.12、8.4.27、8.3.36 或 8.2.35。
  • Forge:PHP 8.2 到 8.5 的服务器,逐台点击“Update PHP”;失败就通过 SSH 升级。Ubuntu 20.04 及更早的服务器无法升级,Laravel 建议迁到新服务器,迁移前先关掉旧服务器。
  • Vapor:修复后的运行时已上线。PHP 8.2 及以上的原生运行时需重新部署,自定义或 Docker 镜像运行时需新部署。
  • PHP 8.0、8.1:没有补丁,请尽快升到 8.2 或更高。

Forge 的安全公告还提醒:自动安全更新不会升级 PHP;服务器上装的每个 PHP 版本都要升级,包括没有网站在用的版本。

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

  • 命令行:php artisan about 的 Environment 部分会显示 PHP 版本(这是命令行 PHP)。
  • 网页端(PHP-FPM):Forge 在服务器的 PHP 标签页里列出已装版本;SSH 下按 Forge 公告同时查看 php8.4 -v 和 php-fpm8.4 -v(把 8.4 换成你的分支)。
  • Vapor:vapor.yml 的 runtime 决定分支,是否已修复取决于最近一次部署。

把版本填进 PHP2Shell 检测即可判断。更多查法见 查看 PHP 版本。

该升到哪个 PHP 版本?

选 Laravel 支持的分支里的修复版本。Laravel 支持策略如下:

Laravel支持的 PHP状态可选修复版本
138.3–8.5支持中8.3.36、8.4.27、8.5.12
128.2–8.5仅安全修复(至 2027 年 2 月 24 日)8.2.35 至 8.5.12
118.2–8.4已停止维护(2026 年 3 月)8.2.35、8.3.36、8.4.27
108.1–8.3已停止维护8.2.35、8.3.36
分支首个修复版本
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 有官方源码补丁)

最快的做法是升到当前分支的修复版本。跑在 PHP 8.1 上的 Laravel 10 没有官方新版本可装,请换到 8.2 或 8.3,并计划升级 Laravel(见 PHP 停止维护版本)。

Laravel 的 PHP 该由谁来升级?

部署方式谁来升级 PHP怎么做
Laravel CloudLaravel(已完成)确认版本
Forge你自己,逐台服务器升级已装的每个 PHP 版本
Vapor你自己重新部署,或用新镜像部署
宝塔面板你自己(软件商店更新)宝塔 PHP
自己管理的 Ubuntu你自己Ubuntu 升级 PHP
Docker、Sail、FrankenPHP你自己(重建镜像)Docker PHP 镜像

用宝塔的话,宝塔已发布修复,在“软件商店 → 已安装”里先更新软件列表,再更新网站在用的 PHP;8.1 也有宝塔打包的 8.1.35。用 1Panel 的话,PHP 运行环境来自官方的 1panel/php 镜像,截至本站核实时标签列表里还没有修复版本,处理思路同 Docker。不管哪种方式,升级后都要用上面的方法再查一次版本。

别忘了重启常驻进程。 升级软件包会重启 PHP-FPM,但队列 worker、Horizon、Octane、Reverb 在重启前仍跑旧 PHP(queue:restart、horizon:terminate、octane:reload)。

怎么判断 Laravel 应用是不是已经被入侵?

升级 PHP 只能挡住以后的攻击。重点检查:

  • public 目录:除 index.php 外的 .php 文件。
  • storage 目录:不是应用生成的 PHP 文件。
  • 定时任务:不是你加的任务,以及 .env 的改动。
  • 应用用户:新出现的管理员或权限变更。

发现可疑情况,按 入侵自查清单 处理,再更换 .env 里的密钥。更换 APP_KEY 会让用户掉线,用旧密钥加密的数据也会读不出来,请把旧密钥放进 APP_PREVIOUS_KEYS。

WAF 或修改 PHP 配置能保护 Laravel 吗?

都不是修复。Cloudflare 表示其 WAF 能拦截已知攻击模式,但也看到攻击者在变换请求绕过拦截。Laravel 中间件在 PHP 解析完请求之后才运行,而 PHP 官方确认过至少一条在应用代码执行之前就能触达的攻击路径。临时办法和局限见 CVE-2026-109618 临时缓解,升级步骤见 PHP2Shell 修复。

Forge 的自动安全更新会装上 PHP2Shell 的修复吗?

不会。Laravel 的 Forge 公告说,Forge 从单独的软件源安装 PHP,自动安全更新不会升级 PHP。请在每台服务器上对已安装的每个 PHP 版本执行“Update PHP”。

Vapor 已经重新部署了,够了吗?

PHP 8.2 及以上的原生运行时,Laravel 说重新部署即可用上修复后的 PHP。自定义运行时或 Docker 镜像运行时需要重建镜像、发起新部署,只重新部署不够。

检测你的 PHP 是否受 PHP2Shell 影响

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

PHP2Shell 检测工具 →

来源

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