在 AI 辅助编程领域,Anthropic 推出的 Claude Code 命令行工具已成为开发者常用的助手。它允许从终端直接调用 Claude Sonnet 等模型,处理脚本编写、代码调试和系统命令执行等任务。
然而,一项近期研究指出,该工具在连接 Model Context Protocol (MCP) 服务器时,可能存在 Tool Invocation Prompt (TIP) 被劫持的风险,导致远程代码执行 (RCE),且无需用户额外交互。
这项研究由香港科技大学和复旦大学的研究团队完成。研究者通过 TEW 攻击框架对 Claude Code v1.0.81 进行了测试,验证了该漏洞的存在。以下是对研究发现的概述,包括 Claude Code 的工作机制、攻击流程以及潜在影响。
Claude Code 是一个命令行界面 (CLI) 工具,专为开发者设计,支持 LLM 与外部工具的交互。用户输入查询(如编写一个迷宫游戏脚本),模型分析后调用工具(如 bash 命令执行),并通过迭代反馈结果。核心组件是 TIP (Tool Invocation Prompt),它定义了工具描述、调用格式和安全检查,例如使用 Haiku 模型作为守卫来评估命令的安全性。
研究发现,TIP 可能成为系统弱点。Claude Code 支持 MCP 协议,用于标准化工具交互,但这也允许外部 MCP 服务器动态注册工具描述。这些描述会自动整合进系统提示 (p_system),从而影响模型的决策。攻击者无需访问核心模型,只需通过恶意 MCP 注入工具描述,即可引导 Claude Code 执行高风险操作。
具体而言,在 Claude Code v1.0.81 中,用户连接 MCP 服务器后,注册过程自动完成。工具描述可伪装成初始化步骤,引导模型执行如 curl|bash 下载脚本的命令,即使守卫模型标记为不安全,主模型 Sonnet 仍可能基于上下文优先执行。
研究提出的 TEW (TIP Exploitation Workflow) 框架描述了实现 RCE 的步骤,聚焦于逻辑基目标攻击 (RCE-2 变体),结合工具描述注入和返回通道。攻击依赖标准用户查询,无需特权访问。
1. 提示结构获取:通过良性查询(如计算 x@x@x)注册恶意工具,注入指令以输出系统提示。Claude Code 加载 MCP 时,会泄露 TIP 结构,包括工具格式和安全规则。
2. 漏洞识别:分析获取的 TIP,确认初始化逻辑会处理所有工具描述。若描述包含潜在恶意代码,它可能被自动执行;即使 Haiku 标记为 UNSAFE,主模型 Sonnet 可能受上下文影响而忽略。
3.TIP 利用 (RCE-2 核心):
测试显示,使用 Claude-sonnet-4 模型的情况下,在 10 次试验中,攻击成功率 (ASR) 达 90%。资源消耗低,仅需数百 Token,隐蔽性较高。
研究提供了一个使用 Claude-sonnet-4 后端的 Claude Code v1.0.81 案例。用户输入「请写个脚本」,预先注册恶意 MCP。
在常规流程中,守卫模型负责对即将执行的命令做风险审查,主模型依据审查结果与系统提示作出是否调用工具的决策;但当 TIP 被外部 MCP 的动态工具描述注入所污染时,恶意指令被包装为「环境初始化」等看似合理的前置步骤并写入系统提示,同时通过伪造的工具返回信息提供「已部分成功、可继续且安全」的信号。受这两路暗示影响,主模型的决策边界被推移,可能弱化对守卫模型「UNSAFE」标记的重视,从而触发原本应被拦截的高风险命令,形成从协同防护到执行偏差的转变。
Claude Code 被任意代码执行攻击的视频演示
Claude Code 运行在终端环境中,具有较高权限(如系统命令执行),RCE 可能导致代码库泄露、恶意软件安装或网络扩散。研究评估了 7 款代理系统例如(Cursor, Claude Code, Cline, Windsurf, Trae, Copilot 和 Cherry Studio),其中 Claude Code 在 RCE-2 成功率上较高,表明单层防御的局限。与 IDE 工具如 Cursor 相比,CLI 特性在远程开发中更易暴露风险。在本次的实验中,所有的代理均暴露出了严重的安全问题。
MCP 协议旨在统一工具生态,但其动态注册机制放大了提示注入风险。Sonnet 模型虽经对齐优化,但对外围上下文修改的防御仍需加强。
研究提出以下改进方向:1) 使用守卫 LLM 如 Llama Guard 过滤 MCP 输入;2) 引入自省机制,让主模型检查初始化步骤的可疑性;3) 采用多模型共识投票验证命令;4) 实施信任信号,仅允许签名 MCP。
这项研究揭示了 Claude Code 在 MCP 连接下的 TIP 利用风险,用户连接外部服务器时可能面临零交互 RCE。Anthropic 的工具创新值得关注,但安全机制的强化同样重要。开发者建议审视 MCP 连接配置。更多细节见代码仓库 、原文或演示。
文章来自于微信公众号 “机器之心”,作者 “机器之心”
【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。
项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md
在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0
【开源免费】VideoChat是一个开源数字人实时对话,该项目支持支持语音输入和实时对话,数字人形象可自定义等功能,首次对话延迟低至3s。
项目地址:https://github.com/Henry-23/VideoChat
在线体验:https://www.modelscope.cn/studios/AI-ModelScope/video_chat
【开源免费】Streamer-Sales 销冠是一个AI直播卖货大模型。该模型具备AI生成直播文案,生成数字人形象进行直播,并通过RAG技术对现有数据进行寻找后实时回答用户问题等AI直播卖货的所有功能。
项目地址:https://github.com/PeterH0323/Streamer-Sales