【漏洞预警】Gitea Runner 未开 privileged 仍可进入宿主机命名空间(CVE-2026-73802)
2026/10/15Docker漏洞预警轩辕镜像团队约 8 分钟阅读

【漏洞预警】Gitea Runner 未开 privileged 仍可进入宿主机命名空间(CVE-2026-73802)

Gitea Actions 官方 runner 在 3.0.0 之前,工作流里的 jobs.*.container.options 会写入 Docker HostConfig。即使强制 Privileged=false,--pid=host、--ipc=host、--cap-add=ALL 以及放开 seccomp/apparmor 仍然生效,工作流作者可以进入宿主机命名空间并以 root 执行命令(CVE-2026-73802,CVSS 9.9)。请把 gitea/runner 升到 3.0.0 或更高。gitea/act_runner 已弃用。

本文使用的 Docker 镜像

发布日期: 2026 年 10 月 15 日
风险等级: 严重(Critical)
漏洞编号: CVE-2026-73802
涉及镜像: gitea/runner — 轩辕镜像 · Docker Hub
CVSS: 9.9(Critical)
披露时间: 2026 年 10 月,Gitea 安全公告
相关公告: GHSA-x4q3-gcj3-m6cf


一、漏洞概述

这是 Gitea Actions 的官方 runner(原先的 act_runner),不是 Gitea 服务端镜像。当前镜像坐标是 gitea/runner。gitea/act_runner 已弃用,并迁到这一坐标。

3.0.0 之前,runner 即使没有开启 privileged,工作流可以控制的 jobs.*.container.options 仍会被写进 Docker HostConfig。程序强制了 Privileged=false,但宿主机命名空间和能力相关的选项仍然生效,包括 --pid=host、--ipc=host、--cap-add=ALL,以及把 seccomp 或 AppArmor 设为 unconfined。工作流作者可以由此进入宿主机命名空间,并以 root 执行命令。

共享 Docker 后端的 runner、且不可信用户可以提交工作流时,这条是严重问题。单租户同样会削弱「已经关闭 privileged」这条边界:关闭 privileged 并没有挡住上述选项。


二、漏洞状态

统计截止: 2026 年 10 月 15 日(UTC+8)

项目状态
漏洞细节已公开(Gitea 安全公告、NVD)
漏洞类型未开启 privileged 时,工作流选项仍可把任务容器放进宿主机命名空间
受影响版本runner 低于 3.0.0(含镜像标签 2.x)
官方补丁3.0.0 及更高。危险 options 须由管理员显式开启 privileged 才允许
前置条件能向这个 runner 提交工作流。共享 runner 上的任意工作流作者即可
CISA KEV未列入

三、影响范围

1. 版本与发行形态

发行形态受影响范围修复
Gitea Actions runner< 3.0.0≥ 3.0.0
官方镜像 gitea/runner标签 2.x 以及低于 3.0.0 的版本Docker Hub 已有 3.0.0、3.0.1,以及更新的 5.1.0
旧镜像 gitea/act_runner已弃用,Hub 上没有 3.0.0改用 gitea/runner

修复标签在 gitea/runner 上。继续拉取 gitea/act_runner 到不了 3.0.0。

2. 典型受影响场景

  • 一台 runner 给多个仓库或不可信贡献者跑 Actions,Docker 后端是共享的
  • 管理员以为关掉 privileged 就已经挡住宿主机命名空间、全部 capabilities 和 unconfined 的 seccomp / AppArmor
  • runner 宿主机上还有其他任务的凭据,或能访问内网

工作流只有管理员能改、且 runner 已经是 3.0.0 或更高时,不在这条修复线以下。


四、修复建议

1. 把 runner 升到 3.0.0 或更高(推荐)

形态最低建议版本
gitea/runner3.0.0

Hub 上 3.0.1 和 5.1.0 同样不低于修复线。5.1.0 是当前较新的正式标签。

Docker Hub: gitea/runner

轩辕镜像: gitea/runner

bash
docker pull docker.xuanyuan.run/gitea/runner:3.0.0

把仍在使用的 gitea/runner:2.x 或 gitea/act_runner 换成 gitea/runner:3.0.0(或 3.0.1、5.1.0)后,重新创建 runner 容器。升级后确认 runner 版本不低于 3.0.0。

镜像标签不带 v。v3.0.0 在 Hub 上不存在。

发行说明:Gitea Runner 3.0.0。

2. 确需危险 options 时单独放行

3.0.0 起,这类宿主机选项不再在 privileged 关闭时生效。业务确实要 --pid=host 或放开 seccomp 时,由管理员显式开启 privileged,不要为了兼容旧工作流停留在 2.x。

3. 升级前跑过不可信工作流的宿主机

按 runner 宿主机可能已被进入处理:更换 runner 注册令牌和该机上的任务凭据,核对同机其他任务与内网访问。不要只重启旧的 2.x 容器。


五、临时缓解措施

在完成升级之前:

  1. 不要让不可信用户向低于 3.0.0 的 runner 提交工作流
    共享 runner 上,工作流作者就可以尝试进入宿主机命名空间。

  2. 不要把「已关闭 privileged」当成足够的隔离
    2.x 仍会应用 pid、ipc、capabilities 和 seccomp / AppArmor 相关选项。

  3. 先换成 gitea/runner:3.0.0,再恢复共享
    旧坐标 gitea/act_runner 没有 3.0.0 这个修复标签。


六、与轩辕镜像用户的相关说明

轩辕镜像提供的是镜像加速与拉取服务,不替代 runner 的版本升级。


七、参考链接


轩辕镜像安全团队
2026 年 10 月 15 日

评论交流

加载中

免责声明

本博客文章所提供的内容、技术方案、配置示例及部署指南等信息,仅供学习交流和技术参考使用。文章内容基于发布时的技术环境和版本信息编写,可能因时间推移、技术更新或环境差异而存在不适用的情况。

用户在参考本博客内容进行部署操作前,应当充分了解相关技术风险,并建议在测试环境中进行充分验证和测试,确认无误后再考虑在生产环境中使用。生产环境部署前,请务必进行数据备份,并制定相应的回滚方案。

用户因使用本博客内容进行部署操作而产生的任何损失、数据丢失、系统故障、安全风险或其他问题,均由用户自行承担全部责任。轩辕镜像官方不对因使用本博客内容而产生的任何直接或间接损失承担责任。

本免责声明的最终解释权归轩辕镜像官方所有。

最后更新:2026/10/15
官方技术交流群:问题咨询请:提交工单
专业版 · 高速稳定拉取镜像
50GB 仅 ¥8/年
高速镜像下载在线技术支持99.95% SLA 保障付费会员免广告