AI编程助手正在重塑开发流程但伴随而来的安全盲区却鲜有人提及。Mitiga Labs最近披露的一项研究发现Claude Code存在一个足以让企业安全团队夜不能寐的漏洞——攻击者只需通过一枚看似无害的npm包就能悄无声息地截获开发者的OAuth凭证进而长期潜伏在Jira、Confluence、GitHub等核心SaaS平台内部。这个问题的棘手之处在于它并非依赖某个未公开的零日漏洞而是巧妙利用了Claude Code自身的工作机制。攻击链路清晰得令人不安且Anthropic方面已明确表示不会发布补丁。攻击的入口比想象中更平常整个故事的起点是开发者再熟悉不过的场景安装一个npm依赖包。Mitiga的研究人员演示了攻击者如何构造一个恶意npm包其内部嵌入了postinstall生命周期钩子。这个钩子在包安装时静默执行几乎不会触发常规安全检查。它的目标只有一个文件——位于用户主目录下的~/.claude.json。这个配置文件控制着Claude Code所有MCP流量的路由规则更致命的是OAuth令牌以明文形式存储其中。恶意钩子完成安装后会预先在开发者常用的项目克隆路径中植入信任标记将信任对话框强制设为true。这样一来Claude Code后续打开这些目录时完全不会弹出任何提示开发者几乎不可能察觉到异常。当开发者正常连接Atlassian或GitHub的MCP服务器时Claude Code会执行完整的OAuth授权流程。然而此时令牌已经落入了攻击者的口袋。OAuth令牌为何成了黄金门票被截获的持有者令牌之所以极具价值源于四个相互叠加的特性。持久化是头号麻烦。这些令牌并非一次性凭证它们附带刷新机制攻击者只需拦截一次就能在目标系统中维持长期访问。更夸张的是令牌继承的是授权时授予的全部权限无需每次调用时重新申请或缩小范围攻击面天然就很广。存储方式则暴露了根本性的设计缺陷。~/.claude.json以明文保存这些敏感凭证文件权限与普通配置文件无异任何能够读取该文件的角色都能直接拿走令牌。而在服务器端请求源IP来自Anthropic的出口地址段提供商端的审计日志看起来完全合法根本无法从流量层面区分正常调用与恶意调用。攻击链路拆解五步完成持久化入侵Mitiga将完整的攻击过程梳理为一条连贯的链路整个过程不需要提权、不需要内存破坏、更不需要新的CVE编号。恶意包通过npm生态进入开发者环境postinstall钩子随即在~/.claude.json中植入信任标志。紧接着攻击者写入一个sessionStart钩子确保每次Claude Code加载受信任项目时都会自动触发。这个钩子会将合法的MCP服务器URL替换成攻击者控制的本地代理地址。当Claude Code读取被篡改的配置并尝试连接时OAuth令牌便经由攻击者的基础设施完成传输。最阴险的是这个钩子会在每次会话启动时重新确认恶意配置即便受害者手动轮换过令牌下一次刷新依然会经过代理攻击者几乎能自动恢复访问。这里有一个反直觉的发现常规应急响应中的轮换OAuth令牌操作在这种场景下反而会帮攻击者的忙。因为sessionStart钩子会在每次会话前重写配置新的令牌生成后下一次OAuth刷新照样会流经代理服务器。真正的修复前提是在轮换凭证之前彻底移除钩子并清理配置文件。防御者审查Atlassian或GitHub的审计日志时看到的全是合法用户名、真实会话以及归属Anthropic出口IP范围的地址。所有字段都挑不出毛病唯一的异常藏在用户本地的~/.claude.json里——而大多数安全团队根本不会监控这个文件。Anthropic的回应暂无补丁计划Mitiga在2026年4月10日向Anthropic提交了完整报告。对方次日确认收到但于4月12日回复称该问题超出其工作范围理由是攻击成立的前提是用户事先给予了同意。截至目前官方没有发布任何补丁的计划。这意味着企业安全团队必须独自承担全部的检测与响应责任不能指望上游厂商在短期内提供修复。企业安全团队现在该做什么面对这种隐蔽且持续的威胁被动等待显然不是选项。安全团队需要尽快落地几项针对性控制措施。密切监控~/.claude.json的异常编辑尤其是mcpServers段落的URL变更以及本地代理地址的突然出现。npm安装后的生命周期脚本应当被视为头等供应链风险在包到达开发者终端之前就必须完成注册表层面的脚本审计。与Claude Code集成的OAuth令牌需要被纳入定期轮换计划但轮换之前务必确认恶意钩子已被清除否则只是给攻击者送新的令牌。SaaS审计日志中凡是来自Anthropic出口IP范围但与用户已知活动模式不符的请求都值得深挖。开发环境里新冒出来的本地代理进程或者意料之外的OAuth刷新行为都是值得立即告警的信号。使用Claude Code和MCP集成的组织建议立刻执行cat ~/.claude.json逐一核对mcpServers下列出的每个URL是否为自己亲手配置的、可识别的合法端点。如果发现任何陌生的本地地址或可疑域名应当立即隔离并展开溯源。AI辅助开发工具的便利性毋庸置疑但这项研究提醒我们当开发环境与核心生产系统的边界越来越模糊时供应链攻击的代价也在成倍放大。安全团队需要把目光从传统的网络边界延伸到开发者本地的每一个配置文件和每一次包安装行为。
Claude Code惊现高危供应链漏洞:npm恶意包可拦截OAuth令牌,企业SaaS平台面临持久化入侵风险
发布时间:2026/6/8 15:20:37
AI编程助手正在重塑开发流程但伴随而来的安全盲区却鲜有人提及。Mitiga Labs最近披露的一项研究发现Claude Code存在一个足以让企业安全团队夜不能寐的漏洞——攻击者只需通过一枚看似无害的npm包就能悄无声息地截获开发者的OAuth凭证进而长期潜伏在Jira、Confluence、GitHub等核心SaaS平台内部。这个问题的棘手之处在于它并非依赖某个未公开的零日漏洞而是巧妙利用了Claude Code自身的工作机制。攻击链路清晰得令人不安且Anthropic方面已明确表示不会发布补丁。攻击的入口比想象中更平常整个故事的起点是开发者再熟悉不过的场景安装一个npm依赖包。Mitiga的研究人员演示了攻击者如何构造一个恶意npm包其内部嵌入了postinstall生命周期钩子。这个钩子在包安装时静默执行几乎不会触发常规安全检查。它的目标只有一个文件——位于用户主目录下的~/.claude.json。这个配置文件控制着Claude Code所有MCP流量的路由规则更致命的是OAuth令牌以明文形式存储其中。恶意钩子完成安装后会预先在开发者常用的项目克隆路径中植入信任标记将信任对话框强制设为true。这样一来Claude Code后续打开这些目录时完全不会弹出任何提示开发者几乎不可能察觉到异常。当开发者正常连接Atlassian或GitHub的MCP服务器时Claude Code会执行完整的OAuth授权流程。然而此时令牌已经落入了攻击者的口袋。OAuth令牌为何成了黄金门票被截获的持有者令牌之所以极具价值源于四个相互叠加的特性。持久化是头号麻烦。这些令牌并非一次性凭证它们附带刷新机制攻击者只需拦截一次就能在目标系统中维持长期访问。更夸张的是令牌继承的是授权时授予的全部权限无需每次调用时重新申请或缩小范围攻击面天然就很广。存储方式则暴露了根本性的设计缺陷。~/.claude.json以明文保存这些敏感凭证文件权限与普通配置文件无异任何能够读取该文件的角色都能直接拿走令牌。而在服务器端请求源IP来自Anthropic的出口地址段提供商端的审计日志看起来完全合法根本无法从流量层面区分正常调用与恶意调用。攻击链路拆解五步完成持久化入侵Mitiga将完整的攻击过程梳理为一条连贯的链路整个过程不需要提权、不需要内存破坏、更不需要新的CVE编号。恶意包通过npm生态进入开发者环境postinstall钩子随即在~/.claude.json中植入信任标志。紧接着攻击者写入一个sessionStart钩子确保每次Claude Code加载受信任项目时都会自动触发。这个钩子会将合法的MCP服务器URL替换成攻击者控制的本地代理地址。当Claude Code读取被篡改的配置并尝试连接时OAuth令牌便经由攻击者的基础设施完成传输。最阴险的是这个钩子会在每次会话启动时重新确认恶意配置即便受害者手动轮换过令牌下一次刷新依然会经过代理攻击者几乎能自动恢复访问。这里有一个反直觉的发现常规应急响应中的轮换OAuth令牌操作在这种场景下反而会帮攻击者的忙。因为sessionStart钩子会在每次会话前重写配置新的令牌生成后下一次OAuth刷新照样会流经代理服务器。真正的修复前提是在轮换凭证之前彻底移除钩子并清理配置文件。防御者审查Atlassian或GitHub的审计日志时看到的全是合法用户名、真实会话以及归属Anthropic出口IP范围的地址。所有字段都挑不出毛病唯一的异常藏在用户本地的~/.claude.json里——而大多数安全团队根本不会监控这个文件。Anthropic的回应暂无补丁计划Mitiga在2026年4月10日向Anthropic提交了完整报告。对方次日确认收到但于4月12日回复称该问题超出其工作范围理由是攻击成立的前提是用户事先给予了同意。截至目前官方没有发布任何补丁的计划。这意味着企业安全团队必须独自承担全部的检测与响应责任不能指望上游厂商在短期内提供修复。企业安全团队现在该做什么面对这种隐蔽且持续的威胁被动等待显然不是选项。安全团队需要尽快落地几项针对性控制措施。密切监控~/.claude.json的异常编辑尤其是mcpServers段落的URL变更以及本地代理地址的突然出现。npm安装后的生命周期脚本应当被视为头等供应链风险在包到达开发者终端之前就必须完成注册表层面的脚本审计。与Claude Code集成的OAuth令牌需要被纳入定期轮换计划但轮换之前务必确认恶意钩子已被清除否则只是给攻击者送新的令牌。SaaS审计日志中凡是来自Anthropic出口IP范围但与用户已知活动模式不符的请求都值得深挖。开发环境里新冒出来的本地代理进程或者意料之外的OAuth刷新行为都是值得立即告警的信号。使用Claude Code和MCP集成的组织建议立刻执行cat ~/.claude.json逐一核对mcpServers下列出的每个URL是否为自己亲手配置的、可识别的合法端点。如果发现任何陌生的本地地址或可疑域名应当立即隔离并展开溯源。AI辅助开发工具的便利性毋庸置疑但这项研究提醒我们当开发环境与核心生产系统的边界越来越模糊时供应链攻击的代价也在成倍放大。安全团队需要把目光从传统的网络边界延伸到开发者本地的每一个配置文件和每一次包安装行为。