🔴 【深度分析】严重安全漏洞:CVE-2026-58053

CVSS 评分: 严重(9.4)🔴  状态: Received  发布时间: 2026-06-28


🔍 技术细节速览

字段 值
CVE ID CVE-2026-58053
CVSS 评分 9.4 🔴
严重程度 严重
CVSS 向量 CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X
CWE 分类 CWE-269
发布时间 2026-06-28
最后更新 2026-06-28
状态 Received
数据来源 disclosure@vulncheck.com

好的,作为一名资深网络安全分析师,我将基于您提供的 NVD 数据,为您生成一篇关于 CVE-2026-58053 的深度漏洞分析文章。


【严重漏洞分析】CVE-2026-58053:Gitea Act Runner Docker 隔离逃逸漏洞

CVSS 4.0 评分:9.4(严重)
CVSS 向量: CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
危害等级: 严重 (Critical)

漏洞概述

2026年6月28日,一个影响 Gitea Act Runner 的高危漏洞(CVE-2026-58053)被披露。该漏洞存在于 Gitea Act Runner 的 Docker 后端实现中(影响 act 工具版本 0.262.0 及之前版本)。由于在创建工作流容器时,对用户提供的“容器选项”(container.options)安全策略实施不当,导致即使配置了 privileged: false(禁用特权模式),攻击者仍能通过注入特定的 Docker 容器选项(如 --pid=host, --cap-add 等),实现容器逃逸,并获取宿主机 Root 权限。

该漏洞结合了 网络攻击向量(AV:N)、低攻击复杂度(AC:L)、无需用户交互(UI:N) 以及 低权限要求(PR:L),导致了严重影响(V:H / VI:H),是对 CI/CD 流水线安全的重大威胁。

受影响组件与版本

  • 受影响组件: Gitea Act Runner (act_runner) 及其依赖的 act 工具。
  • 影响版本: 使用 Docker 后端,且 act 版本 <= 0.262.0 的所有 Gitea Act Runner 实例。

漏洞原理分析

本漏洞的核心是一个不安全的默认配置覆盖与权限绕过问题,属于 CWE-269(特权管理不当)范畴。

技术分析:

  1. 功能机制: Gitea Act Runner 的 Docker 后端负责将 CI/CD 工作流中的任务在隔离的 Docker 容器中执行。工作流的配置文件中允许用户通过 container.options 字段来自定义容器运行时的参数。

  2. 安全缺陷: 官方提供的文档和安全最佳实践建议,对于不受信任的流水线,应设置 privileged: false 以防止容器获得宿主机级权限。然而,Act Runner 在处理 container.options 时存在逻辑缺陷:

    • 当配置 privileged: false 时,Act Runner 会强制将 Docker 容器的 HostConfig.Privileged 标志设置为 false。
    • 问题在于: 它并未阻止或安全地合并来自 container.options 的其他高危 Docker 选项。这些选项包括但不限于 --pid=host(共享宿主机进程命名空间), --cap-add(添加Linux Capabilities,如 SYS_ADMIN),以及 --security-opt(修改安全策略,如关闭 AppArmor或 Seccomp)。
  3. 攻击向量: 一个有权向 Docker 后端 Runner 提交或合并工作流(例如,通过 Pull Request 触发)的恶意用户,可以构造如下 container.options:

    container:
      image: ubuntu:latest
      privileged: false
      options: >
        --pid=host
        --cap-add=SYS_ADMIN
        --security-opt apparmor=unconfined
        --security-opt seccomp=unconfined
    
  4. 逃逸过程: 当 Runner 执行此工作流时:

    • Docker 守护进程会严格遵守用户提供的 options,创建一个具有宿主机 PID 命名空间、添加了 SYS_ADMIN 权限、且关闭了 AppArmor 和 Seccomp 保护机制的容器。
    • 虽然 Privileged 标志仍为 false,但通过组合 --pid=host 和足够高的 Linux Capabilities(如 SYS_ADMIN),攻击者几乎可以完全控制宿主机。例如,他们可以:
      • 利用 --pid=host 查看宿主机所有进程,甚至可以通过 ptrace 附加到宿主机进程。
      • 利用 SYS_ADMIN capability 挂载宿主机文件系统(如 cgroup 或宿主机根目录)到容器内,从而实现完整的文件系统逃逸并执行任意代码(以 root 身份)。

影响评估

  • 攻击复杂度: 低(AC:L)。该漏洞利用方法稳定,攻击者只需构造特定的 JSON/YAML 字符串。
  • 攻击路径: 网络(AV:N)。攻击者可以在代码仓库中提交修改后的 .gitea/workflows/*.yaml 文件,通过网络接口触发 Runner 执行。
  • 所需权限: 低(PR:L)。攻击者只需要拥有向目标仓库提交代码或发起 Pull Request 的权限。这在很多开源或内部协作项目中是很容易获得的。
  • 用户交互: 无(UI:N)。攻击过程完全自动化,无需目标管理员或用户进行任何点击操作。
  • 影响后果: 严重 (V:H, VI:H, VA:H)。攻击者可以实现:
    • 机密性丧失: 窃取宿主机上的 CI/CD Secret、SSH 密钥、数据库配置等敏感数据。
    • 完整性丧失: 篡改宿主机文件系统或运行中的服务。
    • 可用性丧失: 控制整个 Runner 节点,可将其作为跳板攻击内网其他服务,或完全瘫痪该节点。
  • 波及范围: 高 (SC:H, SI:H, SA:H)。攻击者控制的不仅是单个容器,而是 Runner 所在的宿主机。如果该宿主机连接着其他基础设施(如 Kubernetes 集群、制品仓库、生产环境),影响范围将进一步扩大。

修复建议

紧急修复 / 临时缓解措施

  1. 隔离 Runner 节点: 立刻检查所有 Docker 后端的 Gitea Act Runner 节点。如果无法立即升级,应将这些节点视为非信任环境。
  2. 限制工作流提交权限: 严格控制能够修改 Runner 工作流配置的用户和角色。只允许受信任的管理员或维护者修改 .gitea/workflows/ 目录下的文件。可以通过仓库的 CODEOWNERS 功能实现。
  3. 使用非 Root Runner: 配置 Act Runner 以非 root 用户运行容器。虽然不能完全阻止利用 --pid=host 的内核级逃逸,但可以增加攻击难度。
  4. 审计依赖: 检查是否使用了 act 的其他前端或包装器,确认它们同样受到了该缺陷的影响。

官方补丁 / 版本升级

  • 核心解决方案: 开发者已意识到此问题。官方修复思路应是:当 privileged: false 被设置时,Runner 应在将 container.options 传递给 Docker API 之前,主动过滤或拒绝任何可能降低容器安全隔离性的高风险选项(如 --pid=host, --cap-add=SYS_ADMIN, --privileged, --security-opt 等)。
  • 请密切关注 Gitea 和 act 项目的官方发布公告(Releases)。
  • 更新 act: 将 act 工具升级到解决此问题的版本(预计为 0.263.0 或更高版本)。在 Act Runner 更新后,请彻底测试工作流的正常运行和隔离性。
  • 重构 container.options 处理逻辑: 建议采用白名单机制,只允许传递经过安全审核的、必要的选项,而不是整体性的黑名单过滤。

参考资料


分析师总结: CVE-2026-58053 是一个教科书级别的容器安全隔离绕过案例。它警示我们,在复杂的 CI/CD 工具链中,即使实现了表面上“安全”的配置(如 privileged: false),但如果对底层 API 的选项处理不严谨,依然会给攻击者留下大量可乘之机。任何运行 Docker 后端 Runner 的 Gitea 实例都应立即将此漏洞视为最高优先级的安全事件进行处理。