Исследователи обнаружили у API OpenAI, Anthropic и Google общий изъян: зашифрованные или непрозрачные блоки рассуждений можно было переносить между сеансами, пользователями, учётными записями и совместимыми моделями одного провайдера. Получив такой блок, более слабую модель просили восстановить скрытый ход рассуждений сильной. В опубликованных журналах работы ИИ-агентов нашлись API-ключи, пароли, токены доступа и закрытые ключи, хотя видимый текст в части случаев уже был очищен. Подробности изложены в работе «Кража цепочек рассуждений из проприетарных API больших языковых моделей» (Stealing Reasoning Traces from Proprietary LLM APIs).

Непрозрачные объекты нужны для приложений, которые самостоятельно ведут историю разговора или обращаются к API без сохранения состояния на сервере. OpenAI возвращает зашифрованные элементы рассуждений, которые клиент повторно отправляет вместе с вручную собранной историей. Anthropic помещает полное рассуждение в зашифрованную подпись, а Google применяет зашифрованные подписи мыслей. Клиент не видит открытый текст, зато модель может продолжить работу с прежним контекстом. Авторы исследования не взламывали шифр и не получали ключи: API сами принимали целые непрозрачные блоки там, где эти блоки первоначально не создавались.
Совместимая слабая модель служила «нечётким декодером»: ей передавали объект сильной модели и давали команду переписать скрытое рассуждение. Для цепочек Claude исследователи использовали Claude Haiku 4.5, для GPT — GPT-5.6 Luna, для Gemini — Gemini Robotics ER-1.6. Точного исходного текста у команды не было, поэтому побайтовое совпадение подтвердить невозможно. Проверка опиралась на качественное сравнение и заявленное провайдерами число токенов рассуждения; длина восстановленных фрагментов в целом следовала этим счётчикам. Речь шла о приблизительном восстановлении содержания, а не о расшифровке в криптографическом смысле.
Уязвимость открывала четыре сценария злоупотребления. Чужие скрытые рассуждения можно было собирать для дистилляции и обучения другой модели. Из опубликованных пользовательских трасс извлекались секретные сведения, отсутствовавшие в читаемой части журнала. За внешне безопасным ответом иногда скрывались вредоносные рассуждения или иной нежелательный материал. Наконец, непрозрачный блок позволял спрятать инструкцию для prompt injection: получатель обрабатывал команду, которую человек при обычном просмотре переписки вообще не видел.
Масштаб проверки был немаленьким: 6 708 общедоступных траекторий агентов и 315 320 декодированных блоков рассуждений. После исключения материалов, происходивших из бенчмарков, исследователи насчитали 704 различных артефакта конфиденциальности из настоящих пользовательских сеансов. Среди них оказались 62 API-ключа, 33 пароля, 24 токена доступа и 7 закрытых ключей; полного распределения остальных находок по категориям работа не приводит. Особенно неприятны 64 артефакта, встречавшиеся исключительно в скрытых рассуждениях. В видимом разговоре их не было, так что обычная очистка текста не помогала.
Произвольного доступа к закрытым чатам изъян не давал. Для межпользовательской атаки требовались сам непрозрачный блок, например из выложенного в открытый репозиторий журнала агента, и доступ к API совместимой модели того же провайдера. Установленная зона риска охватывала прежде всего разработчиков и пользователей, публиковавших сырые стенограммы API, агентские трассы или логи с сохранёнными полями рассуждений. Авторы не утверждали, что пострадал каждый клиент, и не представили доказательств реальной эксплуатации злоумышленниками. При этом они не исключили, что известная группа открытых журналов была не единственным источником утечки.
В доказательстве концепции скрытой prompt injection исследователи создали непрозрачный блок с вредоносной инструкцией, а затем перенесли его в постороннее задание. Модель-получатель добавила указанное атакующим действие по загрузке данных. В читаемой переписке приказ не отображался: для человека задача выглядела обычной, тогда как исполняемый моделью контекст содержал лишнюю команду. Такая схема опасна ещё и тем, что проверка видимых сообщений или фильтрация пользовательского ввода не замечает содержимое переносимого объекта.
Работа продолжила наблюдения криптографа Университета Джонса Хопкинса Мэтью Грина, сделанные в мае. Грин показал, что зашифрованные блоки рассуждений воспроизводятся в других сеансах и учётных записях, но надёжного способа извлекать из них секреты тогда не разработал. Он сообщил о поведении через программы вознаграждения за ошибки OpenAI и Anthropic. По словам Грина, OpenAI назвала отчёт «невоспроизводимым», а Anthropic не увидела угрозы безопасности ни в повторном использовании блоков, ни в сопутствующем поведении побочного канала. Новое исследование превратило это наблюдение в технику извлечения и проверило последствия на тысячах публичных трасс.
Сведения передали OpenAI, Anthropic, Google, Microsoft и Hugging Face. Исследователи сообщили, что после защитных изменений показанные атаки перестали работать; в заявлении о воспроизводимости указано, что основную атаку извлечения уже нельзя было повторить по состоянию на август 2026 года. Публичного признания конкретного изъяна со стороны OpenAI, Anthropic или Google в описанной записи не появилось. Компании также не связывали нынешние правила работы API с этой публикацией, поэтому утверждение об устранении опирается на проверку авторов, а не на прямое подтверждение поставщиков.
Зашифрованные рассуждения из API не исчезли. OpenAI по-прежнему советует повторно передавать такие элементы при ручном ведении истории в API без состояния. Google сообщает, что при переключении моделей серверная часть управляет совместимостью мыслей. Anthropic теперь уточняет: блоки мышления привязаны к создавшей их модели, при смене модели их следует удалять, а остальные модели должны игнорировать чужие блоки. Открытым остаётся отдельный вопрос о сотнях тысяч объектов, ранее опубликованных в репозиториях: прекращение свежих атак ещё не означает, что старые блоки утратили возможность декодирования.
Перед публикацией трасс разработчикам следует удалять все блоки рассуждений и любые непрозрачные поля, не сохранять сырые стенограммы API в публичных репозиториях и считать зашифрованный объект конфиденциальными данными. Очистка одной читаемой переписки недостаточна. При переходе между моделями нужно соблюдать правила конкретного провайдера, включая требование Anthropic убирать модельно-зависимые блоки мышления. Слабым местом здесь оказалась не криптография, а переносимость: корректно зашифрованный объект принимался за допустимый контекст за пределами исходного сеанса, аккаунта, пользователя или модели.

Изображение носит иллюстративный характер
Непрозрачные объекты нужны для приложений, которые самостоятельно ведут историю разговора или обращаются к API без сохранения состояния на сервере. OpenAI возвращает зашифрованные элементы рассуждений, которые клиент повторно отправляет вместе с вручную собранной историей. Anthropic помещает полное рассуждение в зашифрованную подпись, а Google применяет зашифрованные подписи мыслей. Клиент не видит открытый текст, зато модель может продолжить работу с прежним контекстом. Авторы исследования не взламывали шифр и не получали ключи: API сами принимали целые непрозрачные блоки там, где эти блоки первоначально не создавались.
Совместимая слабая модель служила «нечётким декодером»: ей передавали объект сильной модели и давали команду переписать скрытое рассуждение. Для цепочек Claude исследователи использовали Claude Haiku 4.5, для GPT — GPT-5.6 Luna, для Gemini — Gemini Robotics ER-1.6. Точного исходного текста у команды не было, поэтому побайтовое совпадение подтвердить невозможно. Проверка опиралась на качественное сравнение и заявленное провайдерами число токенов рассуждения; длина восстановленных фрагментов в целом следовала этим счётчикам. Речь шла о приблизительном восстановлении содержания, а не о расшифровке в криптографическом смысле.
Уязвимость открывала четыре сценария злоупотребления. Чужие скрытые рассуждения можно было собирать для дистилляции и обучения другой модели. Из опубликованных пользовательских трасс извлекались секретные сведения, отсутствовавшие в читаемой части журнала. За внешне безопасным ответом иногда скрывались вредоносные рассуждения или иной нежелательный материал. Наконец, непрозрачный блок позволял спрятать инструкцию для prompt injection: получатель обрабатывал команду, которую человек при обычном просмотре переписки вообще не видел.
Масштаб проверки был немаленьким: 6 708 общедоступных траекторий агентов и 315 320 декодированных блоков рассуждений. После исключения материалов, происходивших из бенчмарков, исследователи насчитали 704 различных артефакта конфиденциальности из настоящих пользовательских сеансов. Среди них оказались 62 API-ключа, 33 пароля, 24 токена доступа и 7 закрытых ключей; полного распределения остальных находок по категориям работа не приводит. Особенно неприятны 64 артефакта, встречавшиеся исключительно в скрытых рассуждениях. В видимом разговоре их не было, так что обычная очистка текста не помогала.
Произвольного доступа к закрытым чатам изъян не давал. Для межпользовательской атаки требовались сам непрозрачный блок, например из выложенного в открытый репозиторий журнала агента, и доступ к API совместимой модели того же провайдера. Установленная зона риска охватывала прежде всего разработчиков и пользователей, публиковавших сырые стенограммы API, агентские трассы или логи с сохранёнными полями рассуждений. Авторы не утверждали, что пострадал каждый клиент, и не представили доказательств реальной эксплуатации злоумышленниками. При этом они не исключили, что известная группа открытых журналов была не единственным источником утечки.
В доказательстве концепции скрытой prompt injection исследователи создали непрозрачный блок с вредоносной инструкцией, а затем перенесли его в постороннее задание. Модель-получатель добавила указанное атакующим действие по загрузке данных. В читаемой переписке приказ не отображался: для человека задача выглядела обычной, тогда как исполняемый моделью контекст содержал лишнюю команду. Такая схема опасна ещё и тем, что проверка видимых сообщений или фильтрация пользовательского ввода не замечает содержимое переносимого объекта.
Работа продолжила наблюдения криптографа Университета Джонса Хопкинса Мэтью Грина, сделанные в мае. Грин показал, что зашифрованные блоки рассуждений воспроизводятся в других сеансах и учётных записях, но надёжного способа извлекать из них секреты тогда не разработал. Он сообщил о поведении через программы вознаграждения за ошибки OpenAI и Anthropic. По словам Грина, OpenAI назвала отчёт «невоспроизводимым», а Anthropic не увидела угрозы безопасности ни в повторном использовании блоков, ни в сопутствующем поведении побочного канала. Новое исследование превратило это наблюдение в технику извлечения и проверило последствия на тысячах публичных трасс.
Сведения передали OpenAI, Anthropic, Google, Microsoft и Hugging Face. Исследователи сообщили, что после защитных изменений показанные атаки перестали работать; в заявлении о воспроизводимости указано, что основную атаку извлечения уже нельзя было повторить по состоянию на август 2026 года. Публичного признания конкретного изъяна со стороны OpenAI, Anthropic или Google в описанной записи не появилось. Компании также не связывали нынешние правила работы API с этой публикацией, поэтому утверждение об устранении опирается на проверку авторов, а не на прямое подтверждение поставщиков.
Зашифрованные рассуждения из API не исчезли. OpenAI по-прежнему советует повторно передавать такие элементы при ручном ведении истории в API без состояния. Google сообщает, что при переключении моделей серверная часть управляет совместимостью мыслей. Anthropic теперь уточняет: блоки мышления привязаны к создавшей их модели, при смене модели их следует удалять, а остальные модели должны игнорировать чужие блоки. Открытым остаётся отдельный вопрос о сотнях тысяч объектов, ранее опубликованных в репозиториях: прекращение свежих атак ещё не означает, что старые блоки утратили возможность декодирования.
Перед публикацией трасс разработчикам следует удалять все блоки рассуждений и любые непрозрачные поля, не сохранять сырые стенограммы API в публичных репозиториях и считать зашифрованный объект конфиденциальными данными. Очистка одной читаемой переписки недостаточна. При переходе между моделями нужно соблюдать правила конкретного провайдера, включая требование Anthropic убирать модельно-зависимые блоки мышления. Слабым местом здесь оказалась не криптография, а переносимость: корректно зашифрованный объект принимался за допустимый контекст за пределами исходного сеанса, аккаунта, пользователя или модели.