🔴 严重 | CVE-2026-45405 — Dokku is a docker-powered PaaS. Prior to 0.38.2, t...
🔴 【深度分析】严重安全漏洞:CVE-2026-45405
CVSS 评分: 严重(9.0)🔴 状态: Analyzed 发布时间: 2026-06-26
🔍 技术细节速览
| 字段 | 值 |
|---|---|
| CVE ID | CVE-2026-45405 |
| CVSS 评分 | 9.0 🔴 |
| 严重程度 | 严重 |
| CVSS 向量 | CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H |
| CWE 分类 | CWE-59 |
| 发布时间 | 2026-06-26 |
| 最后更新 | 2026-06-26 |
| 状态 | Analyzed |
| 数据来源 | security-advisories@github.com |
CVSS 评分:9.0(严重)
CVSS 向量:CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H
危害等级:严重(Critical)
漏洞概述
CVE-2026-45405 是 Dokku(一款基于 Docker 的平台即服务工具)中存在的严重安全漏洞,涉及 git:from-archive 和 certs:add 两个命令。这两个命令在处理用户提供的 tar/zip 归档文件时,未对压缩包内文件路径进行充分校验,也未阻止符号链接遍历攻击。攻击者可通过构造恶意的归档文件,利用 GNU tar 在解压过程中自动创建符号链接并跟随链接写入文件的特性,实现任意文件写入,最终可能覆盖 ~/.ssh/authorized_keys 文件,获得 Dokku 用户的完整 Shell 访问权限。
该漏洞影响 Dokku 0.38.2 之前的所有版本,已在 0.38.2 版本中修复。
受影响组件与版本
| 组件 | 受影响版本范围 | 修复版本 |
|---|---|---|
| Dokku | < 0.38.2 | 0.38.2 |
影响命令:
git:from-archivecerts:add
漏洞原理分析
核心问题:CWE-59(路径遍历与符号链接跟随)
该漏洞属于典型的 Zip/Tar 符号链接遍历攻击,其技术成因如下:
归档文件解压缺乏路径校验
Dokku 的git:from-archive和certs:add命令在解压用户提供的 tar/zip 文件时,未对压缩包内成员的文件路径进行规范化检查。攻击者可以在归档文件中嵌入包含../的路径(如../../../../home/dokku/.ssh/authorized_keys),或创建指向敏感文件的符号链接。GNU tar 的符号链接跟随行为
GNU tar 在解压过程中会按顺序处理归档条目。如果先创建一个符号链接(例如evil_link -> /home/dokku/.ssh/authorized_keys),随后再解压一个同名的普通文件条目,tar 会跟随该符号链接将文件内容写入目标路径。这一行为被攻击者利用来实现“任意文件写入”。攻击链示例
- 攻击者构造一个恶意 tar 包,其中包含:
- 条目1:符号链接
tmp/evil -> /home/dokku/.ssh/authorized_keys - 条目2:普通文件
tmp/evil,内容为攻击者的 SSH 公钥
- 条目1:符号链接
- Dokku 解压时,先创建符号链接,然后写入公钥文件,实际覆盖了
authorized_keys。 - 攻击者随后可通过 SSH 以 dokku 用户身份登录服务器。
- 攻击者构造一个恶意 tar 包,其中包含:
攻击向量分析(基于 CVSS 向量)
| 维度 | 值 | 分析 |
|---|---|---|
| 攻击向量 (AV) | 网络 (N) | 攻击者可通过网络向 Dokku 服务提交恶意归档文件 |
| 攻击复杂度 (AC) | 低 (L) | 无需特殊技巧,仅需构造恶意 tar/zip 文件 |
| 所需权限 (PR) | 低 (L) | 攻击者需要具有 Dokku 平台的基本用户权限(如能调用 git:from-archive 或 certs:add 命令) |
| 用户交互 (UI) | 需要 (R) | 需要 Dokku 管理员或具有相应权限的用户执行解压操作 |
| 影响范围 (S) | 已变更 (C) | 漏洞利用可导致权限提升,影响超出原始授权范围 |
| 机密性影响 (C) | 高 (H) | 攻击者可读取 dokku 用户可访问的所有数据 |
| 完整性影响 (I) | 高 (H) | 可覆盖任意文件,包括 SSH 认证密钥 |
| 可用性影响 (A) | 高 (H) | 可能导致服务被完全控制或破坏 |
影响评估
实际威胁等级:极高
- 利用条件:攻击者需要拥有 Dokku 平台的低权限账户(如开发者或部署用户),并能够触发
git:from-archive或certs:add命令。在多数部署场景中,这些命令对普通用户开放,因此利用门槛较低。 - 攻击复杂度:低。无需绕过额外安全机制,仅需构造恶意归档文件。
- 潜在后果:
- 完全控制服务器:通过覆盖
authorized_keys获得 SSH 访问,进而以 dokku 用户身份执行任意命令。 - 横向移动:dokku 用户通常具有 Docker 管理权限,可进一步攻击容器或宿主机。
- 数据泄露:读取 Dokku 管理的应用代码、环境变量、数据库凭证等敏感信息。
- 服务中断:破坏 Dokku 配置文件或应用部署。
- 完全控制服务器:通过覆盖
受影响环境
- 所有使用 Dokku 0.38.2 之前版本的自托管 PaaS 平台。
- 特别关注多租户环境,其中低权限用户可上传归档文件。
修复建议
官方补丁
- 升级至 Dokku 0.38.2 或更高版本。该版本已对归档解压过程进行路径安全校验,禁止路径遍历和符号链接跟随。
临时缓解措施(无法立即升级时)
限制命令访问
通过 Dokku 的 ACL 或系统权限,限制git:from-archive和certs:add命令仅对受信任管理员开放。手动校验归档文件
在解压前使用工具(如tar -tf)检查归档内容,拒绝包含../路径或符号链接的归档。监控文件系统变更
部署文件完整性监控(如 AIDE、Tripwire)或使用auditd监控~/.ssh/authorized_keys等关键文件的修改。使用沙箱解压
在隔离环境(如临时容器)中解压归档,确认安全后再复制到目标目录。
参考资料
总结:CVE-2026-45405 是一个典型的归档解压路径遍历漏洞,利用 GNU tar 的符号链接跟随特性实现任意文件写入。CVSS 9.0 的评分反映了其低利用门槛和高危害后果。所有 Dokku 用户应立即升级至 0.38.2 版本,并审查现有部署中是否存在可疑归档文件。