ZeroPathAI/spinnaker-poc
GitHub: ZeroPathAI/spinnaker-poc
该仓库提供 Spinnaker 两个高危漏洞的 POC,用于演示认证后 RCE 与云凭证窃取风险。
Stars: 0 | Forks: 0
# Spinnaker 漏洞 POCs
针对 CVE-2026-32604 和 CVE-2026-32613 的概念验证演示,两个 10.0 严重级别的 Spinnaker 漏洞,可导致代码执行和生产云凭证窃取。
## 漏洞
### Git 克隆 Shell 注入(CVE-2026-32604,CWE-78)
Clouddriver 的工件获取端点在启用基于 HTTP 的 Git 认证时,会将用户提供的分支名称未经清理地传递到 `sh -c` 命令中。任何已认证用户均可通过 `PUT /artifacts/fetch` 注入 Shell 命令,在 Clouddriver 主机上实现任意代码执行——该服务存储了所有云提供商凭证。无需特殊角色或权限,仅需为已认证用户即可。
### 通过 expectedArtifacts 的 SpEL RCE(CVE-2026-32613,CWE-917)
Echo 在触发流水线时,使用 Spring Expression Language(SpEL)评估 expected artifact 声明,并采用未限制的 `StandardEvaluationContext`。攻击者只要拥有对任意应用程序的写入权限,即可保存包含恶意 SpEL 表达式的流水线,触发 Webhook 后即可在 Echo 服务上获得任意代码执行。Spinnaker 中其他所有 SpEL 评估点均使用了加固上下文;这是唯一未进行加固的评估点。
## 仓库内容
- **`setup/`** — 自动环境设置。克隆 Spinnaker 源代码树,从源码构建所有服务,并启动一个完整配置的集群(Gate、Orca、Clouddriver、Front50、Fiat、Echo)以及支持基础设施(Redis、MySQL、Elasticsearch、Minio、OpenLDAP)。包含测试应用、用户和流水线的种子数据。
- **`pocs/`** — 漏洞利用脚本。每个 POC 连接至 Gate,设置攻击载荷,并将用户放入目标服务容器的交互式反向 Shell。
- `clouddriver_rce_via_git_clone.py` — Git 克隆 Shell 注入
- `echo_rce_via_spel.py` — 通过 expectedArtifacts 的 SpEL RCE
## 使用说明
前提条件:Docker、Git、Python 3.10+ 以及 [uv](https://docs.astral.sh/uv/getting-started/installation/)。
```
cd setup
./setup.sh
```
首次运行会克隆 Spinnaker 源代码并构建所有服务(约 20-30 分钟,取决于机器性能)。后续运行将复用缓存的构建结果,并在数分钟内启动。
设置完成后,会打印完整的运行环境信息(服务 URL、凭证以及示例 POC 命令)。请按照说明运行 POCs。
清理环境:
```
cd setup
./teardown.sh
```
标签:Clouddriver, CVE-2026-32604, CVE-2026-32613, CWE-78, CWE-917, Echo, Git Clone, Pipeline触发, POC, Shell注入, SpEL, Spinnaker, Spring Expression Language, Tactics, 代码执行, 凭据窃取, 后认证RCE, 命令注入, 容器逃逸, 持续交付, 搜索引擎查询, 横向移动, 漏洞, 编程规范, 网络安全研究, 请求拦截, 逆向工具