Claude Code v2.1.319:auto 模式不再降级到本地分类器,四处权限绕过同版修掉
Claude Code v2.1.319 于 2026-11-06 发布:关遥测或走 LLM 网关时,auto 模式不再回退本地分类器,查不了的调用改为询问或拒绝;同版修掉 Bash 环境变量前缀等四处权限绕过。
2026-11-07 · Claude Code 官方 Release Notes(GitHub Releases API 逐 tag 一手核对,2026-11-07)
发布 2026-11-07核实 2026-11-07要点速览
v2.1.319(tag 时间戳2026-11-06T17:04:01Z,prerelease: false)已转正为 stable,接替 11-04 的v2.1.318,生产请改钉v2.1.319。- 本版头号:auto 模式的「无兜底」语义。 官方原文:"Changed auto mode with telemetry or feature flags off, including behind LLM gateways: calls the server can't check are asked about or denied, with no fallback to the built-in classifier; set
CLAUDE_CODE_AUTO_MODE_SERVER=0to keep using it (Bedrock, Vertex and Foundry are unchanged)."- 含义:关遥测、关特性开关、走 LLM 网关这三种部署下,服务端核验不了的调用今后一律「询问或拒绝」,不再偷偷降级到本地内置分类器。 要回退旧行为,显式设
CLAUDE_CODE_AUTO_MODE_SERVER=0。 - Bedrock / Vertex / Foundry 三家托管不变。
- 含义:关遥测、关特性开关、走 LLM 网关这三种部署下,服务端核验不了的调用今后一律「询问或拒绝」,不再偷偷降级到本地内置分类器。 要回退旧行为,显式设
- 反向开关同版补上:网关部署下
CLAUDE_CODE_AUTO_MODE_SERVER=1即便设了CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS也会打开服务端检查;如果你用 managed settings 设了后者,必须同时把前者设成1,否则两者语义打架。 - 🆕 新增
permissions.denyInsteadOfPrompting:本该等在权限提示上的工具调用直接被拒、但该轮继续,覆盖终端会话、子代理与 teammate。 - 四处权限绕过在同一版修完(见下节),其中 Bash 环境变量前缀绕过与 worktree 沙箱逃逸属安全面,优先级高于功能变更。
claude -p又补一处假成功:auto 模式下因「拿不到安全检查」而被拒时,此前退出码 0,现在文本与 JSON 输出都改为退出 1。这是本站记录的同一条演进线(v2.1.317磁盘满/配额耗尽、v2.1.318非法 JSON)第三次延伸。- MCP 工具调用改为后台任务:MCP server 把工具调用当任务跑时,Claude Code 立刻把它移到后台,完成后告知模型;
CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND=1可改回「在工具调用内等待」。 /context不再每轮把整个可视网格发给模型:此后模型只读那张表,长会话的后续轮上下文成本会下降。- 网关侧补齐预算归属:
admin.pooled_conflict_rule与admin.pooled_priority_order用于指定「一个开发者在多个组时,哪个组的 pooled 预算先扣」。
四处权限绕过,官方都写在 Fixes 里
| # | 官方原文要点 | 实际含义 |
|---|---|---|
| ① | "Fixed a Bash permission bypass where a crafted environment prefix could hide part of a command from permission checks" | 在命令前拼一段构造过的环境变量前缀,就能让权限检查只看到命令的一部分。 只要 deny / ask 规则是按命令文本匹配的,这类绕过就成立 |
| ② | "Fixed a case where a sed command could skip the permission check in accept-edits and auto mode" | accept-edits 与 auto 模式下,sed 曾可绕过权限检查——这两个模式恰恰是「最放宽」的两档 |
| ③ | "Fixed a sandbox escape when creating a worktree" | 创建 worktree 时存在沙箱逃逸。用 --worktree 或 worktree 隔离做安全边界的部署必须复测 |
| ④ | "Fixed a case where /rewind could restore or delete a file through a directory symlink" | /rewind 可经目录符号链接越界恢复或删除文件。有 symlink 目录结构的仓库风险更高 |
另有一条同类修复:"Fixed a case where Bash deny and ask rules missed commands written with quoted words" —— 带引号的词会让 deny / ask 规则匹配失败。四条修复指向同一个结论:权限规则是按文本匹配的,而 shell 允许同一件事有很多种写法。
其他值得读的变更
无人值守与权限面
permissions.denyInsteadOfPrompting生效后,「会卡住的调用」变成「被拒的调用」——任务不会停,但会少做一步。- 自托管 runner:
--trust-workspace false现在连仓库 settings 文件与 skills 里的 hooks 一起停掉(此前只停一部分)。 Changed a session's exact Bash or PowerShell ask rule to be refused, not asked about, when a broader deny rule covers the command—— 更宽的 deny 覆盖时,精确的 ask 规则直接失效,不再弹提示。Changed the Bash tool to ask for permission before running 'which' with flags outside a lookup/display set——which带非常规参数开始要授权。Changed PostToolUse hooks to run, with up to 10 seconds to finish, on tool calls that finish after a new message interrupts the turn—— 打断之后才完成的工具调用,hooks 仍会跑,且最多给 10 秒。
上下文与成本
/context表格瘦身:每张列表只留最大的 10 行,按需加载的 MCP 工具在调用前按 server 合并为一行。CLAUDE_CODE_DISABLE_FEATURE_FLAGS:停止拉取特性开关但不关遥测,每个开关改用内置默认值。/usage对「走 Claude apps 网关、没有花费上限」的开发者新增今日 / 本周 / 本月花费。
技能与目录
Changed nested skill loading: with the Bash sandbox on, skills in '.claude/skills' folders below the starting folder load only if you start Claude Code there or '/cd' there—— Bash 沙箱开启时,起始目录以下的嵌套 skills 默认不加载,除非你就在那里启动或/cd过去。Changed '--add-dir' directories to register plugin marketplaces only once that directory's own trust dialog has been accepted—— 新增目录里的插件市场要等该目录的信任对话框被接受后才注册。
循环与网关
- 自定节奏的
/loop在一轮结束且未重新排期时直接结束,不再排一个兜底唤醒;CLAUDE_CODE_LOOP_KEEPALIVE=1保留旧行为。 - 网关新增
login_notice(登录页与浏览器验证页显示运维自定义文案)、CLAUDE_GATEWAY_LOG_FORMAT=json(运维日志转 JSON,含severity/time/message)。 - 启动告警新增一条时间线:对「没有
desktopHome却依赖coworkTabEnabled: false或chatSessionRetentionDays」的策略提前告警,原因是 Claude Desktop 将在 11 月 10 日变更——本站记录该日期,具体变更内容官方本条未展开。
AI 之家 观点
一、「没有兜底」才是这个版本真正的语义。 过去 auto 模式的隐含承诺是「服务端管不了的时候,本地分类器兜一层」;本版把这句话改成了「服务端管不了的时候,问你或者拒绝」。这不是收紧权限,是把「能力降级」明确成「行为降级」——用户在网关部署下会感到 auto 模式变笨了,但那正是设计意图。对照 v2.1.295 的 hook fail-closed,这是本站记录的第三次「fail-closed 化」,方向高度一致:宁可停下来,也不静默降级。
二、denyInsteadOfPrompting 是把「卡住」换成「跳过」,不是变安全。 无人值守流水线最怕的从来不是被拒绝,而是被拒绝之后没人知道。这个设置确实让长任务不再挂在一个没人点的对话框上,但代价是模型少做一步、任务照常「成功」结束。开它之前请先想清楚:你要的是一份能跑完的报告,还是一份跑完但可能缺项的报告。建议只对「缺项可接受」的任务开,且要求模型显式汇报被拒的动作。
三、四条权限绕过同版修完,说明「规则按文本匹配」这件事本身是结构性弱点。 环境变量前缀、引号写法、sed、符号链接——四次都不是逻辑漏洞,而是**「同一个操作有很多种写法,而检查只认其中几种」**。任何在 CI 里用 Bash 跑自动化、靠 deny 规则做边界的人,都应该把这条当成长期假设:规则能拦住的只是它认得的那种写法。 真正需要边界的地方,用沙箱(且本版刚修了 worktree 逃逸)与最小权限账号,而不是靠一串字符串规则。
四、两条「看着是优化、实际是行为变更」的条目别漏:/context 不再发整个网格,省钱但模型对上下文的感知会变;Bash 沙箱下嵌套 skills 默认不加载,依赖深层 .claude/skills 的仓库升级后会发现技能「消失」。这两条都不在 Breaking Changes 里。
五、给使用者四条动作:① 生产改钉 v2.1.319;② 走网关的,先决定 CLAUDE_CODE_AUTO_MODE_SERVER 取 0 还是 1,并检查 managed settings 里有没有 DISABLE_EXPERIMENTAL_BETAS 与之冲突;③ 用 --worktree 或 symlink 目录的,复测沙箱与 /rewind;④ 依赖深层 .claude/skills 的,升级后确认技能仍加载。
待核实
permissions.denyInsteadOfPrompting开启后被拒动作是否留下可读日志——官方只说「该轮继续」,未说明可观测性。CLAUDE_CODE_AUTO_MODE_SERVER在同时被 managed settings 与进程环境设置时的优先级——本版修了一个「只在 managed settings 里设 URL 时被忽略」的边角,未给出通用优先级规则。- Claude Desktop 11 月 10 日变更的具体内容——官方只在新版启动告警里提及,正文未展开。
- MCP tasks 后台化后,任务失败如何回传给模型——官方只写「完成时告知结果」。
v2.1.319的npmstable通道是否已同步——本站本轮未核对 npm dist-tags(v2.1.318发布时曾出现stable落后于latest的情况),建议安装前自查npm view @anthropic-ai/claude-code dist-tags。
来源
- ⭐ Claude Code v2.1.319 Release Notes(官方原文,一手,tag 时间戳
2026-11-06T17:04:01Z) - Claude Code Releases(官方仓库,逐 tag 核对
prerelease字段) - Claude Code v2.1.317 Release Notes(官方原文,用于「假成功」演进线对照)
- Claude Code v2.1.318 Release Notes(官方原文,用于演进线对照)
延伸阅读:Claude Code 工具卡、hook fail-closed 那一次、Agent 沙箱百科、上下文压缩百科。
常见问题
升级到 v2.1.319 后 auto 模式会不会突然频繁要权限?
如果你关掉了遥测或特性开关、或走的是 LLM 网关,会。本版起服务端无法核验的调用不再回退到内置分类器,而是直接问你或拒绝。想保留旧行为,设 CLAUDE_CODE_AUTO_MODE_SERVER=0。Bedrock / Vertex / Foundry 三种托管不受影响。
denyInsteadOfPrompting 和原来的 deny 规则有什么区别?
原来的 deny 是按命令匹配拦死某个操作;denyInsteadOfPrompting 是按「这一轮会不会卡在权限提示上」判断——会卡的直接拒绝,但该轮继续往下走,不会整体停住。终端会话、子代理、teammate 都适用。
这次修了哪些安全漏洞?
官方 Fixes 里能明确读出的有四处:① Bash 权限检查可被精心构造的环境变量前缀绕过;② sed 在 accept-edits 与 auto 模式下可跳过权限检查;③ 创建 worktree 时存在沙箱逃逸;④ /rewind 可经由目录符号链接恢复或删除文件。