安全研究人员发现,攻击者利用 GitHub 的自动化工作流漏洞,在不到一小时内对包括 Google LangExtract、Trivy、Brave 浏览器和 MLflow 在内的 61 个公共存储库发起了供应链攻击尝试。Radware 威胁猎人团队指出,这一行动疑似由单一攻击者协调执行,旨在窃取凭证并在 CI/CD 环境中执行恶意命令。

据 Radware 副总裁兼研究员 Gabi Nakibly 向 The Register 透露,绝大多数(77 次)恶意活动发生在 9 月 1 日的短短 43 分钟内,其余 6 次则在随后的两分钟内完成。攻击者使用了 74 个不同的 GitHub 账户,其中许多账户拥有合法的开发历史记录,这增加了检测难度。
新型攻击链:隐藏指令与自动触发
Nakibly 与研究员 Zvika Babo 描述了一种新的攻击向量。攻击者首先在 GitHub 上发布问题(Issue)、拉取请求(Pull Request)或评论,并将恶意指令隐藏在 HTML 注释中。这种手法确保恶意内容在网页渲染时不可见,从而绕过人工审查。
如果目标仓库配置了针对特定事件(如新建 Issue 或 PR)自动触发的工作流,攻击者无需直接干预即可启动流程。Nakibly 表示:“工作流会在几秒钟内自动触发。如果该工作流存在易受攻击的代码逻辑,攻击便成功执行。”
一旦工作流被触发,攻击者控制的内容会被整合进 Shell 脚本源码中。Shell 随后执行隐藏的恶意命令,提升环境变量权限,并试图将数据外泄至攻击者控制的服务器。尽管研究人员尚未完全证实所有攻击均成功执行,但他们已在日志中发现两个包含恶意命令在自动化环境中运行的证据。
Babo 强调,此类攻击门槛极低:“攻击者不需要破坏存储库或访问其代码库。基本上,任何拥有 GitHub 账户的用户都可以尝试执行此攻击。”
受影响的高星开源项目
截至 10 月 13 日,Radware 在 61 个不同的存储库中确认了 83 个恶意 GitHub 项目。这些仓库涵盖人工智能框架、安全工具、开发基础设施及数据库等广泛使用的开源软件。
报告中列出的高关注度目标包括:
- agno-agi/agno (42.7K 星标)
- ToolJet/ToolJet (41.1K 星标)
- google/langextract (38.9K 星标)
- aquasecurity/trivy (38.4K 星标)
- CopilotKit/CopilotKit (38K 星标)
- podman-container-tools/podman (33K 星标)
- QwenLM/qwen-code (28.5K 星标)
- mlflow/mlflow (28.4K 星标)
- discordjs/discord.js (26.8K 星标)
- cilium/cilium (25.6K 星标)
- brave/brave-browser (23.9K 星标)
- dotnet/maui (23.3K 星标)
- Homebrew/homebrew-cask (22.2K 星标)
- github/docs (21K 星标)
- apache/doris (16K 星标)
- PX4/PX4-Autopilot (12.8K 星标)
Babo 指出,这些项目被成千上万的组织使用,潜在影响范围巨大。研究人员已向所有受影响项目的维护者披露发现,大多数存储库已关闭或修复漏洞,但尚无法证实所有仓库均已完成整改。
防御建议
Nakibly 认为,目前无法完全阻止攻击者尝试此类入侵,唯一的防御途径是增强工作流代码的弹性,使其不易受到注入攻击。他建议开发者将外部内容视为不可信来源,并限制可用于工作流程的秘密和环境变量。
具体防护措施包括:在 CI/CD 工作流程中实施最小权限原则,并将由外部事件触发的工作流与拥有更高权限的内部工作流隔离开来。





