2026-06-30 · 🔧 工具← 本期
v2.1.196
一条只用来"看看装了啥"的命令,怎么会在你机器上跑起别人的程序?Claude Code v2.1.196 的更新日志里,这条安全补丁夹在一串常规修复中间,堵的正是这么个反直觉的洞:claude mcp list 和 get,你以为在查清单,它却在替你启动程序。
先说清 MCP 是什么。Claude Code 要调用外部工具,比如查数据库、开浏览器、连公司内部系统,靠的是 MCP 这套协议;每接一个能力,本质是在你机器上跑起一个叫 server 的小程序。这些 server 有哪些、要不要信任,写在两个配置文件里:.mcp.json 声明仓库配了哪些 server,.claude/settings.json 记谁被批准过。关键在于,这两个文件都能跟着代码仓库一起提交、一起 clone 下来。
麻烦就在这。一个不安全的仓库可以在自带的 .claude/settings.json 里,替它 .mcp.json 声明的 server 提前盖上"已批准"的章。正常你要跑一个陌生 server,系统还得让你确认一下;但过去 claude mcp list、get 为了把每个 server 的状态列全,会真的把它们逐个拉起来。于是攻击链短得可怕:你 clone 一个陌生仓库,进去只想敲句 claude mcp list 看看它配了哪些工具,别人埋进配置里的程序已经在你机器上运行了——看一眼等于执行。
2.1.196 把这条路断开:列举和查询不再启动任何 server,碰到不可信的工作目录,这些 server 会显示成"⏸ 待批准",要真跑得你亲手点头。改动不算大,堵的却是一个"信任判断被前置到仓库自带配置里"的结构性缺口:授权本该是用户当场做的决定,不能让被 clone 的代码自己替自己发。
往大了看,这类问题和近来频发的软件供应链投毒是一个家族的:危险不在你主动敲下的那行命令,而在工具替你"顺手"多做的那一步。Claude Code 这半年 MCP 生态铺得快,第三方 server 越来越多,信任边界画在哪就越来越要紧;把"提交进仓库的配置能替自己授权"这条堵掉,是在给这套生态补地基,而不是加功能。
同一版还捎带几个小改动:管理员能在组织后台设默认模型,在 /model 里显示成"Org default";会话有了可读的默认名字,方便回头找和呼叫;聊天里的文件附件可以 Cmd 或 Ctrl 点开,直接在访达、资源管理器里定位。都是打磨,不是新方向。真正值得记一笔的还是那条安全修复:官方没说它在野外被利用过,但"只读命令其实会执行代码"这种认知盲区,往往是补上之后,人才后知后觉自己曾经暴露在哪一步。