安全研究机构Mitiga近日披露了一起值得所有Claude Code用户警惕的安全事件:攻击者可以利用Claude Code的MCP(Model Context Protocol)机制,悄无声息地重定向流量、截获OAuth令牌,并持久化访问受害者连接的各类SaaS平台。整个攻击过程不需要高深技术,门槛极低,但后果却相当严重。

攻击原理:npm包的”特洛伊木马”
该攻击的核心是利用npm包的生命周期钩子(Lifecycle Hooks)。当用户安装某个含恶意钩子的npm包时,这些钩子会在后台自动执行,修改用户主目录下的`~/.claude.json`配置文件——将MCP流量重定向到攻击者控制的代理服务器。
攻击者通过这个代理服务器,可以实时截获Claude Code与MCP服务器之间的所有通信内容。这其中最关键的,就是OAuth访问令牌和刷新令牌。由于这些令牌在传输和存储过程中以明文形式存在,一旦被截获,攻击者便获得了访问受害者SaaS账号的”万能钥匙”,可以绕过MFA多因素认证保护,以受害者身份操作用户的工作账户。
持久化才是真正的威胁
更值得警惕的是,这种攻击具有极强的持久性。即便用户发现了问题、手动修改了`~/.claude.json`恢复正确配置,恶意钩子会在用户下次安装任何npm包时再次发作,自动将配置修改回攻击状态。这意味着即使用户发现了异常并轮换了令牌,攻击者也能在短时间内重新截获新的令牌,形成一个难以彻底根除的持续威胁。

Anthropic的回应:这是”用户同意”范围内的行为
安全研究员将这一问题报告给Anthropic后,得到的回复令安全社区感到意外:Anthropic认为,用户主动安装了含恶意钩子的npm包,这属于”用户同意”(User Consent)的范围,因此不在Anthropic的修复范畴内。这一结论等于将安全责任完全推给了用户侧。
安全专家建议Claude Code用户采取以下防御措施:密切监控`~/.claude.json`文件的配置变化;关注MCP服务器URL是否有异常修改;定期审查OAuth令牌的刷新行为;发现任何异常时立即审查相关API活动日志。
值得注意的是,整个攻击链的起点仅是一个看似无害的npm包安装行为。不需要复杂的社工攻击,不需要钓鱼邮件,不需要植入恶意软件——攻击者只需要将一个含恶意钩子的npm包发布到npm registry,等待不知情的开发者安装即可。这种极低的攻击门槛,让任何人都可能成为受害者。

OpenClaw—AI研究