CVE-2025-54068 — Laravel Livewire v3 远程代码执行漏洞 完整分析
一、基本信息
| 项目 | 内容 |
|---|---|
| CVE ID | CVE-2025-54068 |
| QVD ID | QVD-2025-28233 |
| CNNVD ID | CNNVD-202507-2331 |
| 漏洞类型 | 反序列化 → 远程代码执行 (RCE) |
| CWE | CWE-502(不可信数据反序列化) |
| 影响产品 | Laravel Livewire v3(全栈前端框架) |
| 影响版本 | 3.0.0 ≤ Livewire < 3.6.4 |
| 修复版本 | Livewire v3.6.4 |
| 披露日期 | 2025-07-17 |
| 漏洞作者发现 | Synacktiv 安全团队 |
二、风险定级
| 评分体系 | 分数 | 向量 |
|---|---|---|
| CVSS 3.1 | 9.8(极危) | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| 奇安信 QVC | 10.0(极危) | — |
| EPSS | 0.95247(百分位 99.86%) | 接近必被利用 |
关键特征:
- 无需认证(
PR:N) - 无需用户交互(
UI:N) - 攻击复杂度低(
AC:L) - CISA KEV 已收录,确认在野利用
- 公开 PoC / EXP 均已发布
- 已修复(补丁存在于 v3.6.4)
三、漏洞原理(利用链分析)
#### 根因:组件反序列化中的 PHP 对象注入(CWE-502)
Livewire v3 的组件hydrate/update机制在处理**组件快照(snapshot)**时,未充分校验用户传入的序列化数据,攻击者可以构造恶意的 PHP 序列化 payload 触发反序列化,最终实现远程代码执行。
攻击链(三步):
Step 1:探测目标是否存在 Livewire 组件 └─ GET / → 提取 wire:snapshot、csrf_token、data-update-uri Step 2:发送恶意更新请求到 /livewire/update └─ POST + 篡改的 snapshot(含恶意序列化 payload) │ ▼ Step 3:PHP 反序列化 → 触发魔术方法链 └─ __toString() → BroadcastEvent → PendingBroadcast → Validator (extensions) → system() 回调 ⬇ **任意命令执行**关键 Gadget Chain:
┌─ __toString (触发点) │ ↓ ├─ Illuminate\Broadcasting\BroadcastEvent │ ↓ ├─ Illuminate\Broadcasting\PendingBroadcast │ ├─ events → Validator │ │ └─ extensions → "system" (函数名) │ └─ event → <要执行的命令字符串> │ ↓ └─ system("命令") → RCE该漏洞无需依赖特定 Livewire 组件的存在——只要站点使用了 Livewire v3 即可被攻击。
—
四、PoC 检测模板(Nuclei)
已有一个完整的Nuclei 检测模板(作者: flame-11,已 verified,max-request=3):
第一步:获取页面特征— 提取wire:snapshot、CSRF token、update URI、参数名
第二步:发送合法更新— 拿到签名后的 snapshot
第三步:注入恶意 payload— 发送带反序列化 gadget chain 的 payload,通过 OOB(HTTP 回连)验证 RCE
> 公开 PoC 工具Livepyre已由 Synacktiv 发布:https://github.com/synacktiv/Livepyre> > 详细技术报告:https://www.synacktiv.com/en/publications/livewire-remote-command-execution-through-unmarshaling
Shodan 搜索指纹:html:"wire:id"(全球暴露面可观)
—
五、漏洞影响
- 影响范围:全球约10,000+受影响资产(奇安信漏洞库估算)
- 攻击面:所有使用
livewire/livewire ^3.0的 Laravel 应用,无需认证即可远程利用 - 危害等级:完全控制 Web 服务器(读文件、安装后门、横向移动、数据窃取)
- 在野利用:已被 CISA KEV 收录,确认存在真实攻击活动
六、修复与缓解措施
立即升级(首选)
code
composer require livewire/livewire:^3.6.4或手动更新composer.json后composer update livewire/livewire
临时缓解方案(升级前)
- WAF 规则:拦截
/livewire/update端点中包含__toString、BroadcastEvent、PendingBroadcast、chained等特征载荷的 POST 请求 2.访问控制:对/livewire/update端点添加 IP 白名单或认证鉴权 3.禁用反序列化类白名单:在 PHP 中配置allowed_classes白名单限制 4.监控告警:关注异常的反序列化异常日志和system/exec/passthru等危险函数调用
七、参考链接
| 来源 | 链接 |
|---|---|
| GitHub Security Advisory | GHSA-29cq-5w36-x7w3 |
| 补丁 commit | ef04be759da41b14d2d129e670533180a44987dc |
| 修复版本发布 | v3.6.4 Release |
| CISA KEV | CISA Catalog |
| PoC 工具 (Livepyre) | Synacktiv/Livepyre |
| 技术细节文章 | Synacktiv 分析 |
| Nullcon 演讲 | Slides |
| NVD | NVD Detail |
总结
CVE-2025-54068是 Laravel Livewire v3 的极危 RCE 漏洞(CVSS 9.8),源于组件快照反序列化过程中对用户输入的校验缺失。攻击者可利用 PHP 原生类 gadget chain(BroadcastEvent → PendingBroadcast → Validator → system())在无需认证的情况下远程执行任意命令。目前已确认在野利用、公开 PoC/EXP 已扩散,任何使用livewire/livewire ^3.0的应用都应立即升级至 v3.6.4。