🔴 【深度分析】严重安全漏洞: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-archive
  • certs:add

漏洞原理分析

核心问题:CWE-59(路径遍历与符号链接跟随)

该漏洞属于典型的 Zip/Tar 符号链接遍历攻击,其技术成因如下:

  1. 归档文件解压缺乏路径校验
    Dokku 的 git:from-archive 和 certs:add 命令在解压用户提供的 tar/zip 文件时,未对压缩包内成员的文件路径进行规范化检查。攻击者可以在归档文件中嵌入包含 ../ 的路径(如 ../../../../home/dokku/.ssh/authorized_keys),或创建指向敏感文件的符号链接。

  2. GNU tar 的符号链接跟随行为
    GNU tar 在解压过程中会按顺序处理归档条目。如果先创建一个符号链接(例如 evil_link -> /home/dokku/.ssh/authorized_keys),随后再解压一个同名的普通文件条目,tar 会跟随该符号链接将文件内容写入目标路径。这一行为被攻击者利用来实现“任意文件写入”。

  3. 攻击链示例

    • 攻击者构造一个恶意 tar 包,其中包含:
      • 条目1:符号链接 tmp/evil -> /home/dokku/.ssh/authorized_keys
      • 条目2:普通文件 tmp/evil,内容为攻击者的 SSH 公钥
    • Dokku 解压时,先创建符号链接,然后写入公钥文件,实际覆盖了 authorized_keys。
    • 攻击者随后可通过 SSH 以 dokku 用户身份登录服务器。

攻击向量分析(基于 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 或更高版本。该版本已对归档解压过程进行路径安全校验,禁止路径遍历和符号链接跟随。

临时缓解措施(无法立即升级时)

  1. 限制命令访问
    通过 Dokku 的 ACL 或系统权限,限制 git:from-archive 和 certs:add 命令仅对受信任管理员开放。

  2. 手动校验归档文件
    在解压前使用工具(如 tar -tf)检查归档内容,拒绝包含 ../ 路径或符号链接的归档。

  3. 监控文件系统变更
    部署文件完整性监控(如 AIDE、Tripwire)或使用 auditd 监控 ~/.ssh/authorized_keys 等关键文件的修改。

  4. 使用沙箱解压
    在隔离环境(如临时容器)中解压归档,确认安全后再复制到目标目录。


参考资料

类型 链接
CVE 详情 https://nvd.nist.gov/vuln/detail/CVE-2026-45405
CWE-59 说明 https://cwe.mitre.org/data/definitions/59.html
Dokku 官方公告 https://github.com/dokku/dokku/security/advisories/GHSA-xxxx-xxxx-xxxx(待官方发布)
修复版本发布 https://github.com/dokku/dokku/releases/tag/v0.38.2
GNU tar 符号链接行为 https://www.gnu.org/software/tar/manual/html_node/Security.html

总结:CVE-2026-45405 是一个典型的归档解压路径遍历漏洞,利用 GNU tar 的符号链接跟随特性实现任意文件写入。CVSS 9.0 的评分反映了其低利用门槛和高危害后果。所有 Dokku 用户应立即升级至 0.38.2 版本,并审查现有部署中是否存在可疑归档文件。