漏洞总结:Command Injection in Reusable Workflow via Unsanitized comment-body Output 漏洞概述 这是一个严重(Critical)级别的安全漏洞(CVE-2024-30352),发生在 GitHub Actions 的可复用工作流(Reusable Workflow)中。漏洞源于工作流脚本中未对 输出进行清理(sanitization),直接将其插入到 bash 语句中,导致攻击者可以通过构造恶意的 issue comment 来执行任意 shell 命令。 影响范围 窃取敏感信息: 攻击者可以窃取 CI 环境中的 secrets,特别是 (GitHub Actions Bot 的个人访问令牌)。 权限提升与操纵: 如果 bot PAT 被盗,攻击者可以在可访问的仓库上执行认证操作,并操纵工作流逻辑。 资源耗尽: 注入的命令可能导致作业失败、挂起运行器(hang runners)或消耗大量资源,从而破坏自动化流水线。 利用工具: 该漏洞已被利用工具 (由 Adnan Khan 和 Roni Carta 开发)所利用。 修复方案 (Mitigations) 1. 避免直接插值: 不要将不受信任的工作流值(如注释正文)直接插值到 shell 脚本中。 2. 使用环境变量与强引号: 通过环境变量传递不受信任的值,并在 bash 中使用强引号(robust quoting)进行安全比较。 相关代码片段 易受攻击的代码 (Vulnerable Code): 缓解后的代码示例 (Mitigated Code):