Claude Code 三天连更三个版本:两类权限规则曾被绕过、MCP 密钥会明文打印,都修了
2.1.268 是重点——你以为 deny 规则上了锁,其实门是虚掩的
如果你平时用 Claude Code 写代码,并且靠 settings.json 里的 deny 规则来挡住某些目录或命令——比如不让 AI 碰 .env、凭据文件或系统目录——那这三个版本你必须知道:Anthropic 在 9 月 10 日到 12 日三天里连发了 2.1.268、2.1.269、2.1.270 三个版本,其中 2.1.268 一次修复了两类"你明明写了禁止规则、它却没生效"的绕过漏洞,外加两处会把 MCP 配置里的密钥原样打印到屏幕上的泄露 bug。第三方技术媒体也把 2.1.268 称为"本周最关键的发布"。这句话翻译成人话就是:你以为上了锁,其实门是虚掩的——现在锁真正装上了。
- 两类 deny 规则绕过已修复:符号链接路径写法绕过 + 复杂命令同行绕过,规则从此真正生效
- 两处 MCP 密钥泄露已封堵:/mcp 详情输出和插件市场报错不再打印真实密钥
- 2.1.269 功能四连:插件评测工具 plugin eval、/output-style 切换、Bash 编辑 diff、Workflow 并发子代理上限提到 256
- 建议直接升到 2.1.270:包含全部修复,且修掉了 2.1.269 引入的一个权限弹窗回归
🔒 重点一:两类 deny 规则被绕过
什么是 deny 规则,为什么会出问题
deny 规则是 Claude Code 的权限护栏:你可以在配置里规定"这个路径不许读、那种命令不许执行"。2.1.268 修掉的两个漏洞,都属于"规则在特定情况下悄悄失效"——也就是你写了禁止,它却照做不误。
1. 符号链接(symlink)路径绕过。如果你的 deny 规则写的是 /etc、/tmp 这类路径,而这些目录在 macOS 或 Linux 上其实是指向真实位置的符号链接,那么当 AI 用"真实路径"去访问时,规则不会生效——比如 macOS 上的 /tmp 实际是 /private/tmp,规则拦得住 /tmp 这个写法,却拦不住那个真实写法。修复后,两种路径写法都会被同一条规则管住。受影响的常见目录包括 macOS 上的 /etc、/tmp、/var 和 Linux 上的 /bin。
2. 复杂命令同行绕过。当一条 Read 或 Edit 的禁止规则旁边,同一行命令里出现了 env -C 或者 eval 这种权限检查器"看不懂"的写法时,规则可能整个不生效。修复后,这类情况不会再把整条规则架空。
📋 同批次还有一个相关的权限行为调整
以 ! 开头的"反向规则"(否定某条规则)以前会越过自己所在的配置文件去影响别处的设置;现在它只在写它的那个配置来源里生效,单独写一个裸 ! 会被直接忽略。这对多套 settings 叠加使用的团队是个重要行为变化:每套配置管好自己,不再互相串门。
🔑 重点二:MCP 密钥明文泄露
Claude Code 支持通过 ${VAR} 占位符引用环境变量,把 API Key 之类的凭据交给 MCP 服务器。问题在于:2.1.268 之前,有两类场景会把这些解析出来的真实密钥直接显示出来——
- 运行
/mcp、/plugin查看服务器详情,或执行claude mcp list/claude mcp get时,输出里带着真实密钥;MCP 登录报错时也一样。 - 插件和市场出错时,报错信息会显示 git 源 URL 里夹带的 token 或密码。
✨ 2.1.269:一天后的功能更新
🧪 claude plugin eval
给插件跑一套可复现的评测,输出打分结果(JSON + HTML 报告)。插件作者可以拿它做质量验证,用户可以看评分再决定装不装。
🎨 /output-style [name]
列出并切换输出风格,远程控制(Remote Control)和云端无头会话里也能用,交互方式更顺手。
📝 Bash 编辑 diff
当 Bash 工具直接改文件时,返回结果会带上改动 diff(由 bashEditDiffEnabled 设置控制),AI 到底改了什么一目了然。
⚙️ Workflow 并发上限 256
新增环境变量 CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS(1–256),把 Workflow 工具单次运行的并发子代理数上限大幅提高,适合推理型的大规模并行任务。
🩹 2.1.270:收拾 2.1.269 的尾巴
一天后发布的 2.1.270 只修了一件事:2.1.269 引入的回归——会话跑了一段时间后,只读 git 命令会莫名其妙重新请求权限。升级到 2.1.270 即可解决。
📊 版本时间线
| 版本 | 发布时间 (UTC) | 主要内容 |
|---|---|---|
| 2.1.268 | 9月10日 | 修复两类 deny 绕过 + 两处 MCP 密钥泄露 + 多项稳定性修复 |
| 2.1.269 | 9月11日 | plugin eval、/output-style、Bash 编辑 diff、Workflow 并发上限 256 |
| 2.1.270 | 9月12日 | 修复 2.1.269 的只读 git 命令重复要权限回归 |
🛠️ 怎么升级,升级后做什么
在终端里执行 claude update(npm 安装的用户也可以用 npm 更新到最新版)。直接跳到 2.1.270 即可,它包含前两个版本的全部内容。升级后建议做两件事:
- 检查 deny 规则:确认你的规则现在对"真实路径"和"符号链接写法"都能生效,别再留虚掩的门。
- 翻一下终端历史:看看 2.1.268 之前有没有打印出过 MCP 密钥,有的话及时轮换。
✅ 适用与不适用
适合谁:所有 Claude Code 用户,尤其是用 deny 规则保护敏感文件、或给 MCP 服务器传过环境变量凭据的人;跑云端/无头会话的团队也建议同步升级。
不适合谁:不用 Claude Code 的读者,可以只把它当作一个行业信号——AI 编程工具的权限模型正在补安全课,你用的其他 Agent 工具也值得问一句"我的禁止规则真的生效吗"。
本文由加装AI助手整理发布 | 数据来源:Anthropic 官方 GitHub Releases、dev.to