GitHub Actions Shell Injection via Workflow Inputs (CVE-2020-35580) 漏洞概述 漏洞类型: GitHub Actions Shell Injection (工作流输入导致的Shell注入) CVE ID: CVE-2020-35580 严重性: Critical (严重) 描述: 三个GitHub Actions工作流文件包含10个Shell注入点。攻击者可以通过 输入,将用户控制的数据直接插值到 块中的shell命令里(使用 语法)。这允许攻击者注入任意shell命令,导致仓库污染和供应链攻击,影响所有下游用户。 影响范围 受影响文件: (4个注入点) (5个注入点) (1个注入点) 潜在危害: CI/CD runner 中的任意代码执行。 利用 token 修改仓库(推送恶意提交)。 供应链污染(下游用户克隆或构建受污染的代码)。 凭证泄露。 修复方案 修复通过两个PR完成: 1. 环境变量间接引用 (Environment variable indirection): 替换所有直接的 插值。 在步骤级别分配输入为环境变量,然后在 块中作为shell变量引用。 2. 输入验证 (Input validation): 在运行任何输入之前添加严格的正则验证步骤。 : 验证 匹配 : 验证 匹配 : 验证 匹配 所有作业现在也使用 通过 确保一致的shell行为。 POC/利用代码 原始漏洞代码示例 ( ): 恶意输入示例: (该输入会被直接插值到shell中执行)