Claude Code OAuth 回归:审计自定义 API Gateway 凭证路由

Claude Code OAuth 回归可能把 Anthropic 用户 token 发往自定义 API Gateway。用这份 operator 清单在 5 月 28 日补丁后审计 token 隔离、gateway 认证日志与子 Agent MCP 策略执行。

发布于 来源 Anthropic / Claude Code GitHub

归档条目:由 AI 根据所引信源辅助生成,发布时未经逐篇审阅。责任编辑:Joe Werner。

极简编辑风格图形,深色背景上呈现路由分叉符号,以炭灰和蓝灰为主色调

这次事件的运营核心问题只有一个,但足够紧迫:你的 API Gateway 收到的,是你预期它应该收到的凭证,还是有可能在某次回归中收到了用户的原始认证 token?

Anthropic 在北京时间 2026 年 5 月 28 日发布的 Claude Code 更新 修复了一个与自定义 API Gateway 直接相关的安全回归——包括所有兼容 OpenAI 的路由代理。该 bug 会导致客户端将用户本人的 Anthropic OAuth 凭证转发到自定义 Gateway 端点,而非使用 Gateway 自身配置的 API Key 或 bearer token。同一版本还修复了子 agent MCP 服务器的策略绕过路径。

发生了什么

这次回归影响所有通过自定义 API Gateway(通过 ANTHROPIC_BASE_URL 或等效 Gateway 配置)路由的 Claude Code 会话。在受影响的版本中,客户端会将用户自己的 Anthropic OAuth token——与其 Anthropic 账号绑定的凭证——发送到自定义 Gateway 端点,而非使用 Gateway 配置的认证材料。

该问题属于回归性 bug:早期版本不存在此问题,后续某次变更重新引入。此次补丁还原了错误的凭证转发路径,恢复了预期行为:自定义 Gateway 接收的是 Gateway 自己配置的认证信息,而非运营方或用户的 Anthropic OAuth 会话凭证。

同一版本中,与多 agent 部署相关的另外两个修复同样值得关注:

子 agent MCP 策略绕过已关闭。 通过 Agent tool 启动的子 agent 此前忽略了 --strict-mcp-config 标志、--bare 模式、远程模式限制、企业 managed-settings.json 中的 MCP 配置,以及运营方定义的 MCP server 允许/拒绝策略。实际效果是:以子 agent 身份调用的 agent 可以访问运营方明确禁止或未批准的 MCP server。此次补丁对子 agent 进程强制执行这些限制,使其与父会话的策略保持一致。

--strict-mcp-config 不再移除已批准的内联 server。 配套修复确保 --strict-mcp-config 不会从通过 --agents 标志或 SDK agents 明确传入的 agent 定义中删除内联 mcpServers。此前过于激进的限制在阻断策略绕过的同时也误伤了合法配置。

本次发布的其他变更包括:/model 现在将所选模型保存为新会话的默认值;macOS 后台 agent 在升级后保留隐私与安全权限授权;修复了有状态 MCP SSE 重连循环的回归;改进了 Windows 更新回滚路径。

对 AI 工程团队意味着什么

凭证回归是信任边界的违反,而非传统意义上的数据泄露。 没有外部攻击者获取任何内容——凭证被发送到用户或运营方自己控制的端点(自定义 Gateway)。但这种信任边界的破坏仍有明确的影响:

  1. Gateway 层 token 计量失效。 如果 Gateway 收到的是 Anthropic OAuth token 而非自己配置的 API Key,请求的归因可能被悄无声息地破坏。许多 Gateway 基于传入的 bearer token 进行计费归因;收到错误的凭证类型会导致团队或项目级别的用量统计悄然出错。

  2. Gateway 层访问控制被绕过。 路由代理通常基于传入 token 的身份来执行限速、预算上限、允许模型列表和日志策略。如果收到预期外的 OAuth 凭证,所有基于 token 身份的策略将静默失效。

  3. 凭证生命周期风险。 Anthropic OAuth token 的有效期窗口和吊销路径与 API Key 不同。如果错误的凭证类型在传输中经过 Gateway,就会出现在 Gateway 日志中——这是一个不同于预期的暴露面。

子 agent MCP 绕过是企业治理层面的缺口。 使用 Claude Code 多 agent 能力(Agent tool、claude agents)编排并行编码会话的团队受影响最大。配置了 managed-settings.json 以限制子 agent 可访问 MCP server 的运营方,此前并未真正获得这一限制的保护。对于网络 MCP server 访问属于合规边界的企业部署,这是一个直接的安全缺口。

Router/Operator 视角

凭证隔离是客户端与 Gateway 的共同责任。 这次回归将一个容易通过明确设计规避的风险变得具体可见。

客户端侧:Claude Code 通过 ANTHROPIC_BASE_URL 将请求重定向到自定义端点。当此环境变量被设置时,预期行为是客户端使用 Gateway 的认证材料,而非用户的 Anthropic 账号凭证。此次回归破坏了这一契约。升级到本次发布后,契约得到恢复。

Gateway 侧:设计良好的 API Gateway 应拒绝其不认识的 token。如果你的 Gateway 颁发自己的 API Key,而收到了一个与任何已知 Key 都不匹配的 bearer token,应立即返回 401。这是一种深度防御属性,能让凭证回归以认证失败的形式暴露出来,而非静默地进行凭证替换。如果你尚未审计 Gateway 接受和拒绝哪些 token 格式,现在正是时候。

Gateway 运营方行动清单:

  • 在继续多用户或多租户 Gateway 部署前,将所有 Claude Code 安装更新到 5 月 28 日的版本。
  • 审计 Gateway 访问日志,查看是否有会话使用了与你颁发的 API Key 在格式或长度上明显不同的 token 进行认证。OAuth token 与 API Key 的结构有明显区别。
  • 确认在所有通过 Gateway 路由的客户端配置中,ANTHROPIC_BASE_URL 指向 Gateway 地址,ANTHROPIC_API_KEY 设置的是 Gateway 颁发的 Key,而非用户的 Anthropic Key。
  • 对于子 agent 部署:通过运行测试子 agent 调用并确认其无法访问被屏蔽的 MCP server,验证你的 managed-settings.json MCP 策略现在已端到端执行。
  • 审查 Gateway token 验证逻辑:如果你的 Gateway 接受任何格式合法的 bearer token,而非针对已知 Key 存储进行验证,请收紧这一逻辑。Token 类型验证是一种低成本、高效的回归检测机制。

MCP 策略执行缺口需要架构层面的复盘。 如果你的 Claude Code 部署使用了带 MCP server 的多 agent 编排,此前的行为在你配置的策略与子 agent 实际执行之间存在缺口。对于此次补丁之前的子 agent 会话中发生的 MCP server 访问,应视为可能未经审计——通过审查会话日志,将 managed-settings.json 中的允许策略与子 agent 实际连接的 server 进行比对。

TheRouter 用户应该关注或尝试什么

将 Claude Code 路由到 TheRouter 或任何兼容 OpenAI 的 API Gateway 的团队,应按以下两步操作:

  1. 确保所有 Claude Code 客户端升级到 5 月 28 日发布的版本(v2.1.150 或更高)。凭证回归只影响通过自定义 Gateway 路由的会话,这正是使用路由代理时的典型配置。

  2. 验证 token 配置的明确性。 Claude Code 应将 Gateway 颁发的 Key 配置为 ANTHROPIC_API_KEY,将 Gateway URL 配置为 ANTHROPIC_BASE_URL。如果你在团队级别管理 Claude Code 部署,请确认这些环境变量在 CI、容器环境和开发者 .env 文件中均已正确设置。

TheRouter 基于收到的 API Key 进行每请求归因和计费。如果受影响的会话向 Gateway 发送了 Anthropic OAuth token,这些请求可能已被拒绝(理想情况)或以异常身份被记录。审查补丁日期之前的 Gateway 请求日志中的异常认证事件,是最直接的审计路径。

子 agent MCP 策略执行修复与使用 Claude Code 后台 agent 能力(claude --bg、claude agents、Agent tool)的团队相关。升级后,在恢复生产工作负载前,测试你的 MCP 允许/拒绝策略是否对父会话和子 agent 会话均一致执行。

帮助与联系