Claude Code OAuth-регрессия: аудит credentials для custom API gateway
OAuth-регрессия Claude Code могла отправлять пользовательские токены Anthropic в custom API gateway. Чеклист для операторов: проверьте изоляцию токенов, auth-логи gateway и соблюдение MCP-политик субагентами после патча 28 мая.
Архивный материал, подготовленный с помощью ИИ по указанному источнику и опубликованный без индивидуальной проверки. Ответственный редактор: Joe Werner.

Операционный вопрос, который поднимает этот инцидент, прост и срочен: получает ли ваш API Gateway именно те учётные данные, которые вы для него настроили, или в какой-то момент мог получить сырой OAuth-токен пользователя?
В релизе Claude Code от 28 мая 2026 года устранена регрессия, напрямую затрагивающая команды, которые маршрутизируют Claude Code через кастомный API Gateway — в том числе через OpenAI-compatible proxy. Ошибка приводила к тому, что клиент направлял пользовательский OAuth-токен Anthropic на endpoint кастомного gateway вместо того, чтобы использовать сконфигурированный API-ключ или bearer-токен gateway. В том же релизе закрыт путь обхода политик для MCP-серверов в субагентах.
Что произошло
Регрессия затронула все сессии Claude Code, настроенные на маршрутизацию через кастомный API Gateway (через ANTHROPIC_BASE_URL или аналогичную конфигурацию). В затронутых версиях клиент мог отправлять OAuth-токен пользователя — учётные данные, привязанные к его аккаунту Anthropic — на endpoint кастомного gateway вместо сконфигурированного ключа или токена.
Проблема классифицирована как регрессия: в более ранних версиях её не было, она была повторно привнесена последующим изменением. Патч восстанавливает правильное поведение: кастомный gateway получает собственные аутентификационные данные gateway, а не OAuth-сессию оператора или пользователя.
Ещё два исправления в том же релизе важны для сред с несколькими агентами:
Закрыт обход политик MCP в субагентах. Субагенты, запущенные через Agent tool, ранее игнорировали флаг --strict-mcp-config, режим --bare, ограничения remote-режима, конфигурацию MCP в enterprise-файле managed-settings.json, а также политики разрешения/запрета MCP-серверов, заданные оператором. На практике субагент мог подключаться к MCP-серверам, явно заблокированным оператором. Патч обеспечивает соблюдение этих ограничений для дочерних процессов субагентов — как и в родительской сессии.
--strict-mcp-config больше не удаляет одобренные inline-серверы. Сопутствующее исправление гарантирует, что --strict-mcp-config не удаляет inline mcpServers из явно переданных определений агентов (через флаг --agents или SDK agents). Ранее избыточно агрессивное ограничение блокировало легитимные конфигурации, не устраняя при этом описанный выше обход политик.
Среди других изменений релиза: /model теперь сохраняет выбранную модель как дефолтную для новых сессий; background-агенты на macOS сохраняют разрешения «Конфиденциальность и безопасность» после обновлений; исправлен цикл переподключения для stateful MCP SSE; улучшен rollback обновлений на Windows.
Почему это важно для инженерных AI-команд
Регрессия учётных данных — нарушение доверительной границы, а не утечка данных в классическом смысле. Никакой внешний злоумышленник ничего не получил — токен был отправлен на endpoint, который контролирует сам оператор или пользователь (кастомный gateway). Однако нарушение доверительной границы влечёт конкретные последствия:
-
Breakdown учёта на уровне gateway. Если gateway получает OAuth-токен вместо ожидаемого API-ключа, запросы могут атрибутироваться некорректно. Многие gateway используют входящий bearer-токен для биллинговой атрибуции; получение неправильного типа учётных данных незаметно ломает учёт по командам и проектам.
-
Обход контролей доступа на уровне gateway. Routing proxy, как правило, применяет rate-limits, бюджетные лимиты, списки разрешённых моделей и logging-политики на основе идентичности входящего токена. Если gateway получает неожиданный OAuth-токен, любые политики, завязанные на идентичность токена, тихо перестают работать.
-
Риски жизненного цикла учётных данных. У OAuth-токена Anthropic другое окно валидности и другой путь отзыва по сравнению с API-ключом. Попадание токена не того типа в transit через gateway означает его появление в логах gateway — иная поверхность экспозиции, чем предполагалось.
Обход политик MCP в субагентах — брешь в корпоративном управлении. Команды, использующие мультиагентные возможности Claude Code (Agent tool, claude agents) для оркестрации параллельных coding-сессий, подвержены этой проблеме в наибольшей степени. Оператор, настроивший managed-settings.json для ограничения доступа субагентов к MCP-серверам, де-факто не получал этой защиты. Для enterprise-деплойментов, где сетевой доступ к MCP-серверам входит в compliance-границу, это прямая уязвимость в системе управления.
Взгляд router/operator
Изоляция учётных данных — совместная ответственность клиента и gateway. Эта регрессия наглядно демонстрирует риск, который легко устраняется несколькими явными архитектурными решениями.
На стороне клиента: Claude Code использует ANTHROPIC_BASE_URL для перенаправления запросов на кастомный endpoint. При установленной переменной предполагается, что клиент использует аутентификацию gateway, а не учётные данные аккаунта пользователя в Anthropic. Регрессия нарушила этот контракт. После обновления до данного релиза контракт восстановлен.
На стороне gateway: хорошо спроектированный API Gateway должен отклонять неизвестные ему токены. Если ваш gateway выдаёт собственные API-ключи и получает bearer-токен, не совпадающий ни с одним известным ключом, он должен немедленно вернуть 401. Это свойство защиты в глубину, которое делает регрессию учётных данных видимой как ошибку аутентификации, а не незаметную замену токена. Если вы не проверяли, какие форматы токенов ваш gateway принимает и отклоняет, — сейчас подходящий момент.
Чеклист для операторов gateway, использующих Claude Code:
- Обновите все инсталляции Claude Code до релиза от 28 мая перед продолжением мультипользовательских или мультитенантных деплойментов через gateway.
- Проверьте логи доступа gateway на предмет сессий, прошедших аутентификацию с токеном, структурно или по длине отличающимся от ваших API-ключей. OAuth-токены и API-ключи имеют различимые форматы.
- Убедитесь, что во всех конфигурациях клиентов, маршрутизирующих через gateway,
ANTHROPIC_BASE_URLуказывает на адрес gateway, аANTHROPIC_API_KEYсодержит ключ, выданный gateway, а не ключ аккаунта Anthropic пользователя. - Для деплойментов с субагентами: проверьте, что политики MCP из
managed-settings.jsonтеперь соблюдаются сквозно — запустите тестовый субагент и убедитесь, что он не может подключиться к заблокированному MCP-серверу. - Пересмотрите логику валидации токенов в gateway: если ваш gateway принимает любой корректно сформированный bearer-токен без проверки по хранилищу ключей — ужесточите эту логику. Валидация типа токена — дешёвый и эффективный механизм обнаружения регрессий.
Брешь в соблюдении политик MCP требует архитектурного аудита. Если ваш деплоймент Claude Code использует мультиагентную оркестрацию с MCP-серверами, предыдущее поведение создавало разрыв между настроенной политикой и тем, что субагенты реально соблюдали. Любые обращения к MCP-серверам в субагентных сессиях до установки патча следует считать потенциально неаудированными — сравните разрешённый список из managed-settings.json с тем, к каким серверам субагенты реально подключались, просмотрев журналы сессий.
Что стоит проверить и попробовать пользователям TheRouter
Командам, маршрутизирующим Claude Code через TheRouter или любой OpenAI-compatible API Gateway, рекомендуется выполнить два шага:
-
Обновите все клиенты Claude Code до релиза от 28 мая (v2.1.150 или новее). Регрессия учётных данных затрагивает только сессии, проходящие через кастомный gateway, — именно такая конфигурация типична при использовании routing proxy.
-
Проверьте явность конфигурации токенов. Claude Code должен быть настроен с ключом, выданным gateway, в качестве
ANTHROPIC_API_KEY, и URL gateway в качествеANTHROPIC_BASE_URL. Если вы управляете деплойментами Claude Code на уровне команды, убедитесь, что эти переменные окружения корректно заданы в CI, контейнерных средах и файлах.envразработчиков.
TheRouter ведёт атрибуцию и биллинг по каждому запросу на основе полученного API-ключа. Если затронутые сессии направляли в gateway OAuth-токен Anthropic, эти запросы, вероятно, были отклонены (оптимальный сценарий) или залогированы под неожиданной идентичностью. Наиболее прямой путь аудита — просмотреть логи запросов gateway за период до даты патча на предмет аномальных событий аутентификации.
Исправление соблюдения политик MCP в субагентах актуально для команд, использующих фоновые агентные возможности Claude Code (claude --bg, claude agents, Agent tool). После обновления — и перед возвращением к production-нагрузкам — протестируйте, что ваша политика разрешения/запрета MCP последовательно применяется как к родительским сессиям, так и к субагентам.
Похожие материалы
Новости AI-роутинга и провайдеров →
Claude Code 2.1.269: три оператор-уровневых изменения в релизе с 60+ исправлениями
Claude Code 2.1.269 добавляет настраиваемый таймаут обнаружения gateway, жёсткий лимит параллельных workflow-агентов и исправляет утечку deny-правил за границу их config-источника. Каждое из них меняет то, как операторы управляют Claude Code в масштабе.

Claude Code 2.1.222 устраняет тихие разрывы stream на gateway и обход хука в фоновых задачах
Три исправления в Claude Code 2.1.222 затрагивают операторов на кастомных ANTHROPIC_BASE_URL gateway: stream-таймер учитывает keepalive любого endpoint, закрыт обход PreToolUse hook в фоновых задачах, ареа git-команд в worktree ужесточена.

Claude Code 2.1.275 сломал все прокси-шлюзы. 2.1.276 исправил это в тот же день.
Тег advisor_20260301 в 2.1.275 сломал все прокси-шлюзы: 400 на каждый запрос. 2.1.276 вышел hotfix'ом в тот же день. Разбор механики сбоя, затронутых конфигураций и трёх дополнительных изменений для операторов.