TwKit

推文

@chenYijl · 2026-10-17 15:00

刚看到个帖子:有人把 Claude Code 的白名单拆了,拆出个连他自己都意外的洞。 10 月 14 日发的 2.1.299,更新日志里藏了三行字:MCP 的 allow 规则,从此只认自己点名的服务器。 以前不是这样。以前你写一条 `mcp__a`,以为管的是服务器 a,其实服务器 `a__b` 也跟着免了检。 你以为你在点名,其实你是在广播。 毛病出在一个下划线身上。工具名是这么拼的:`mcp__` 加服务器名,加 `__`,加工具名。但服务器名自己也能带 `__`,于是 `mcp__a__b__whoami` 到底是谁家的工具——没人分得清。 allow 规则的本质是跳过权限确认。规则写宽了,等于你替一个从没审查过的服务器签了免检 🔓 更损的是反方向:deny 和 ask 规则,如果服务器名里带了双下划线,旧版本里根本不生效。你写的"不许",AI 压根没看见。 谁给服务器起名?你,`claude mcp add` 的时候。还有一种:项目里那个 `.mcp.json`。作者举了个例子,你写了条 `mcp__github`,项目里躺着个 `github__mirror`——旧版本里,它大概率也跟着免检了。当然作者也承认,这只是推演,他没见过真实事故。 修法不难:规则写全名,`mcp__<完整服务器名>__*`。或者听作者的绝招:服务器名里干脆别用双下划线,换连字符,一了百了。 权限系统最怕的从来不是黑客,是命名。

曝光 4 · 评论 0 · 点赞 0 · 书签 0 · 曝光/时 1.9506188685408052

TwKit
正在载入