Claude Code 2.1.223:修复 Gateway 模型发现 Bug,关闭四条权限绕过路径
Claude Code 2.1.223 修复了一个导致带前缀 ID 的 Claude 模型在自定义 API 网关中不可见的 Bug,关闭四条权限绕过路径,并调整了 1M context 模型的 auto-compaction 行为。

如果你的团队通过自定义 API 网关来路由 Claude Code——无论是 HTTPS 代理、自托管路由器,还是以命名空间 ID 注册模型的云提供商——2.1.223 包含一个你今天就需要部署的修复。本版本同时关闭了四条影响无头部署和托管部署的安全绕过路径。
Gateway 模型发现 Bug
Claude Code 通过查询你在 ANTHROPIC_BASE_URL 中配置的 API 端点来发现可用模型。在 2.1.223 之前,模型选择器会静默丢弃任何匹配 provider 前缀模式的模型 ID:vertex_ai/claude-*、bedrock/anthropic.claude-*,以及网关用来区分上游 provider 的类似命名空间 ID。
实际影响:如果你的网关以 provider 命名空间 ID 注册模型(这是多 provider 路由器转发到 Bedrock、Vertex AI 或自定义推理后端时的常见做法),这些模型对 Claude Code 的模型选择器来说是不可见的。用户不会收到模型被隐藏的提示——选择器只是显示了一个更短的列表。仅凭日志,运营商也无法发现这个问题。
2.1.223 中的修复使模型发现逻辑对所有注册的模型 ID 都视为有效,不再过滤前缀,然后单独解析用于会话跟踪的规范模型名称。如果你的网关注册了 vertex_ai/claude-sonnet-5 或 bedrock/anthropic.claude-opus-5,而用户反映模型未出现在列表中——这正是对应的修复。
四条安全绕过路径,已关闭
1. Bash 不可见字符绕过。 精心构造的 shell 命令可以在 token 之间填充制表符或不可见 Unicode 字符,向权限审批对话框隐藏部分命令内容,同时 shell 会完整执行全部内容。在无头运行 Claude Code 的场景下(CI 流水线、自动化编程 Agent、后台 Worker),恶意 prompt 可以指示 Claude 在破坏性操作周围附加不可见字符,从而绕过 auto 模式的检测。
2. 工作流脚本中的 dynamic import() 沙箱逃逸。 在沙箱内执行的工作流脚本可以使用 dynamic import() 从沙箱边界外加载任意 Node.js 模块,从而导入 child_process 或 fs 并执行沙箱本应拒绝的操作。修复方案是在沙箱上下文中屏蔽 dynamic import。
3. Agent 定义中的 bypassPermissions 绕过组织策略。 当 agent 定义设置了 bypassPermissions: true 时,会绕过组织级别明确禁用 bypass-permissions 模式的策略。这是一条权限提升路径:marketplace skill 或共享的 .claude/agents/ 定义可以声明组织管理员明确撤销的提升权限。修复方案是让组织策略强制覆盖 agent 级别的声明。
4. zsh 中 [[ ]] 正则条件的 Bash 绕过。 在 zsh 中,嵌入在 [[ ]] 正则条件表达式中的命令可以执行隐藏操作,而 Bash 工具权限检查器不会检查这些表达式。这允许精心构造的命令通过权限检查,同时在条件分支中执行未列出的代码。
modelOverrides key 处理行为变更
在 2.1.223 之前,modelOverrides 中非 Anthropic model ID 的 key 会被静默地视为会话的规范 model ID,可能导致网关配置的 override 通过路由元数据错误传播。修复方案:未知的 modelOverrides key 现在会被忽略,与文档规范一致,但此前实现并未强制执行。
如果你在 managed settings 中配置了任何非标准 key 的 modelOverrides,请检查——它们将不再生效。
1M context 模型的 auto-compaction 行为变更
CLAUDE_CODE_DISABLE_1M_CONTEXT 此前只针对固定的原生 1M token 窗口模型 ID 列表生效。在 2.1.223 中,该环境变量现在会通过 auto-compaction 将所有原生 1M 窗口的模型限制在 200K token。当会话未被保持在 200K 以内时,启动时会出现警告。
同步的变更:使用未知 model ID(例如网关中注册的自定义模型 ID)的会话,现在也由 auto-compaction 控制在模型的假定 context 窗口内,而不再允许无限增长。退出方式:CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1。
对于通过代理路由 Claude Code 并分配内部 model ID 的运营商:auto-compaction 现在会对这些 ID 触发,可能改变长会话的 token 用量和账单模式。
Managed-settings 合并修复
服务器下发的 managed settings 更新此前可能禁用本地 managed-settings.json 或 MDM profile 中的 env block。修复方案使服务器下发的设置按 key 合并,而非覆盖本地 env 配置。如果你的部署同时使用组织下发设置和带自定义环境变量的本地 managed settings,请验证升级到 2.1.223 后这些 env 变量仍然保留。
运营商需要审查的内容
- 模型列表:如果使用网关路由 Claude Code 的用户此前反映模型缺失,升级到 2.1.223 后验证网关中注册的模型 ID 是否出现在选择器中。
modelOverrides:检查是否存在非 Anthropic model ID 的 key;它们现在会被忽略。CLAUDE_CODE_DISABLE_1M_CONTEXT:如果依赖此 flag 控制成本,确认它现在对你网关服务的所有 1M 窗口模型都生效。- 无头安全状态:本版本的四个权限绕过修复表明权限模型正在积极加固。如果你在 auto/无头模式运行 Claude Code,请尽快升级。
- Managed settings env 合并:测试本地
managed-settings.json中的 env 变量在服务器下发 settings 后仍然保留。
相关阅读
AI 路由新闻与供应商动态 →
Claude Code 2.1.269:一个 60 项修复包里藏着的三个 operator 级变更
Claude Code 2.1.269 新增了 gateway 发现超时覆盖参数、并发 workflow agent 上限,以及一个跨配置源默默生效的 deny rule 漏洞修复。这三项变更直接影响规模化运营 Claude Code 的团队。

Claude Code 2.1.267:运营商层面的 Effort 上限控制、提示词缓存稳定性修复与市场容器绕过漏洞补丁
2.1.267 带来三项运营商相关变更:跨 Bedrock、Vertex、Foundry 生效的 maxEffortLevel 上限配置;禁止系统提示词快照复用的新标志;以及一个通过反斜杠绕过市场容器检查的安全修复。此外包含十二项提示词缓存稳定性改进,直接影响 Token 成本。

Claude Code 2.1.229:SSE 保活补丁修复 Vertex 和 Bedrock 静默断流,以及 Git 推送路径的权限收紧
Claude Code 2.1.229 在 gateway 流式响应中加入 SSE 保活 ping,专门解决长 thinking 暂停期间 Vertex AI 和 Bedrock 上游的静默超时断流。另有 /commit-push-pr 危险 git flag 拦截和沙箱 IPv6 fail-closed 收紧。