🔴 严重 | CVE-2026-58053 — Gitea act_runner with the Docker backend (through act 0
🔴 【深度分析】严重安全漏洞: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(特权管理不当)范畴。
技术分析:
功能机制: Gitea Act Runner 的 Docker 后端负责将 CI/CD 工作流中的任务在隔离的 Docker 容器中执行。工作流的配置文件中允许用户通过
container.options字段来自定义容器运行时的参数。安全缺陷: 官方提供的文档和安全最佳实践建议,对于不受信任的流水线,应设置
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)。
- 当配置
攻击向量: 一个有权向 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逃逸过程: 当 Runner 执行此工作流时:
- Docker 守护进程会严格遵守用户提供的
options,创建一个具有宿主机 PID 命名空间、添加了SYS_ADMIN权限、且关闭了AppArmor和Seccomp保护机制的容器。 - 虽然
Privileged标志仍为false,但通过组合--pid=host和足够高的 Linux Capabilities(如SYS_ADMIN),攻击者几乎可以完全控制宿主机。例如,他们可以:- 利用
--pid=host查看宿主机所有进程,甚至可以通过ptrace附加到宿主机进程。 - 利用
SYS_ADMINcapability 挂载宿主机文件系统(如cgroup或宿主机根目录)到容器内,从而实现完整的文件系统逃逸并执行任意代码(以 root 身份)。
- 利用
- Docker 守护进程会严格遵守用户提供的
影响评估
- 攻击复杂度: 低(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 集群、制品仓库、生产环境),影响范围将进一步扩大。
修复建议
紧急修复 / 临时缓解措施
- 隔离 Runner 节点: 立刻检查所有 Docker 后端的 Gitea Act Runner 节点。如果无法立即升级,应将这些节点视为非信任环境。
- 限制工作流提交权限: 严格控制能够修改 Runner 工作流配置的用户和角色。只允许受信任的管理员或维护者修改
.gitea/workflows/目录下的文件。可以通过仓库的 CODEOWNERS 功能实现。 - 使用非 Root Runner: 配置 Act Runner 以非 root 用户运行容器。虽然不能完全阻止利用
--pid=host的内核级逃逸,但可以增加攻击难度。 - 审计依赖: 检查是否使用了
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 详情页(NVD): https://nvd.nist.gov/vuln/detail/CVE-2026-58053
- CWE-269 特权管理不当: https://cwe.mitre.org/data/definitions/269.html
- Gitea Act Runner 官方仓库: https://github.com/gitea/act_runner (请关注其 Security Advisories 和 Issues)
act工具仓库: https://github.com/nektos/act (受影响组件)
分析师总结: CVE-2026-58053 是一个教科书级别的容器安全隔离绕过案例。它警示我们,在复杂的 CI/CD 工具链中,即使实现了表面上“安全”的配置(如 privileged: false),但如果对底层 API 的选项处理不严谨,依然会给攻击者留下大量可乘之机。任何运行 Docker 后端 Runner 的 Gitea 实例都应立即将此漏洞视为最高优先级的安全事件进行处理。