Claude Code 运行 GitHub 仓库时自动执行隐藏恶意代码,攻击者可完全控制开发者机器
Mozilla 0DIN 安全研究人员发现,AI 编程工具 Claude Code 在运行 GitHub 仓库的 setup 脚本时,会不加验证地执行通过 DNS 查询动态加载的隐藏恶意代码。攻击者只需一个被攻陷的仓库即可完全控制开发者机器。本文分析攻击原理、对中文开发者的风险及防范建议。
一句话看懂
Mozilla 0DIN 团队展示了一种攻击:Claude Code 运行 GitHub 仓库 setup 时,通过 DNS 查询动态加载隐藏恶意代码,无需验证即可执行,攻击者可完全控制开发者机器。
详细发生了什么
Mozilla 的 0DIN 安全研究平台发布了一项发现:攻击者可以利用 AI 编程工具(如 Anthropic 的 Claude Code)的自动化特性,在开发者克隆并运行一个被攻陷的 GitHub 仓库时,悄无声息地植入恶意代码。
关键在于,恶意代码并不直接存在于仓库文件中,而是通过一个 DNS 查询在运行时动态加载。这意味着:
- 代码在仓库中不可见,传统的静态代码扫描工具无法检测。
- AI 代理本身也无法感知恶意行为,因为它只看到正常的 setup 指令。
- 一旦 Claude Code 执行仓库的安装或初始化脚本(如
npm install或自定义 setup),恶意负载就会通过 DNS 请求从攻击者控制的服务器下载并执行。
研究人员演示了攻击者如何利用这一漏洞获得对开发者机器的完全控制,包括窃取 API key、源代码、SSH 密钥等敏感信息。该攻击不需要用户点击任何可疑链接,只需使用 AI 工具处理一个看似正常的仓库。
中文圈视角
对中文开发者影响几何?
-
国产 AI 编程工具同样面临风险:类似攻击不仅针对 Claude Code,任何自动执行仓库脚本的 AI 工具(如 GitHub Copilot、Cursor、国内的通义灵码、CodeGeeX 等)都可能成为目标。中文开发者常用的 npm、pip 等包管理器也存在类似的 supply chain 攻击风险。
-
平替与防护:目前国内用户使用 Claude Code 需要代理,但攻击本身不依赖地域。更值得关注的是,国产工具如通义灵码是否对仓库脚本执行有安全校验?据公开信息,多数 AI 编程助手在运行用户代码前会提示确认,但自动化程度高的工具(如自动安装依赖)仍可能被利用。
-
中文社区盲点:国内对 AI 编程工具的安全讨论多集中在代码泄露和 prompt injection,但 supply chain 层面的动态加载攻击尚未引起足够重视。开发者习惯直接运行
git clone && cd repo && npm install,而 AI 工具加速了这一流程,也放大了风险。 -
监管合规:如果攻击涉及数据出境(如 API key 被发送到境外服务器),可能违反《数据安全法》。企业使用 AI 编程工具时需评估数据流向。
几条值得记住的细节
- 恶意代码通过 DNS 查询动态加载,不在仓库文件中,静态扫描无法发现。
- Claude Code 在执行 setup 脚本时未对 DNS 请求的来源做任何验证。
- 攻击者可以窃取 API key、SSH 密钥、源代码等敏感信息。
- 研究人员来自 Mozilla 的 0DIN 平台,该平台专注于 AI 安全研究。
- 目前 Anthropic 尚未发布官方修复或安全公告。
一句话总结
使用 AI 编程工具时,不要盲目信任任何 GitHub 仓库的自动化脚本,务必在隔离环境中运行或手动审查 setup 步骤。