Harden-Runner漏洞分析:绕过'sudo禁用'策略的技术细节

本文详细分析CVE-2025-32955漏洞,该漏洞允许攻击者在配置了disable-sudo策略的GitHub Actions运行器中通过Docker容器逃逸技术绕过sudo限制,获得root权限。漏洞影响版本0.12.0至2.12.0,已在v2.12.0中修复。

CVE-2025-32955:Harden-Runner绕过’sudo禁用’策略漏洞分析

漏洞概述

Harden-Runner包含一个disable-sudo策略选项,旨在防止GitHub Actions运行器用户使用sudo。该功能通过从sudoers文件中移除运行器用户来实现。然而,此控制措施可被绕过,因为运行器用户作为docker组的成员,可以与Docker守护进程交互以启动特权容器或访问主机文件系统。

技术细节

漏洞原理

  • 权限绕过机制:攻击者能够通过Docker容器逃逸技术重新获得root访问权限或恢复sudoers文件
  • 攻击前提:攻击者首先需要能够在运行器上运行恶意代码(例如通过类似tj-actions的供应链攻击或利用Pwn Request漏洞)

影响版本

  • 受影响版本:>= 0.12.0, < 2.12.0
  • 已修复版本:2.12.0

影响范围

  • 使用disable-sudo: true配置的GitHub托管运行器
  • 临时自托管的基于VM的运行器
  • 不适用于基于Kubernetes的Actions Runner Controller (ARC) Harden-Runner

修复方案

缓解措施

此漏洞已在Harden-Runner版本v2.12.0中修复。用户应迁移到更强的disable-sudo-and-containers策略,该设置:

  • 禁用sudo访问
  • 移除对dockerd和containerd套接字的访问
  • 完全从运行器卸载Docker,防止基于容器的权限提升路径

额外改进

  • disable-sudo选项将在未来弃用,因为它本身无法充分限制权限提升
  • Harden-Runner现在包含检测功能,可警报试图规避disable-sudo策略的行为

安全指标

CVSS评分

  • 总体评分:6.0(中等严重性)
  • 基础指标:CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:H

相关弱点

  • CWE-250:使用不必要权限执行
  • CWE-268:权限链式利用
  • CWE-272:最小权限原则违反

参考信息

  • GHSA ID:GHSA-mxr3-8whj-j74r
  • NVD链接:https://nvd.nist.gov/vuln/detail/CVE-2025-32955
  • 修复提交:step-security/harden-runner@0634a26
  • 发布说明:https://github.com/step-security/harden-runner/releases/tag/v2.12.0

报告者:@loresuso 和 @darryk10

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计