Исследователи нашли способ извлекать содержимое зашифрованных блоков, в которых API Anthropic, OpenAI и Google сохраняли внутреннее состояние рассуждающих моделей между запросами. Атака позволяла переносить такой блок между сеансами и пользователями, а затем передавать его более слабой модели того же поставщика и заставлять её воспроизводить скрытый текст.
Работа называется Stealing Reasoning Traces from Proprietary LLM APIs. Препринт появился на arXiv 10 августа 2026 года. Авторы — Александр Панфилов, Давид Шмотц, Илья Шумайлов, Лука Бойрер-Келлнер, Йоахим Шеффер, Амея Прабху, Йонас Гайпинг и Максим Андрющенко. Исследователи связаны с MATS Research, ELLIS Institute Tübingen, Институтом интеллектуальных систем Общества Макса Планка, Тюбингенским центром ИИ, Snyk и Тюбингенским университетом. Это препринт, а не прошедшая рецензирование журнальная публикация.
Полный текст исследования опубликован на arXiv, а отдельный сайт проекта с демонстрациями атаки и примерами восстановленных рассуждений доступен по адресу stolen-thoughts.com.
Авторы восстановили 315 320 блоков рассуждений из публичных журналов работы ИИ-агентов, нашли реальные ключи API, пароли и токены, показали утечку опасной информации из скрытого рассуждения и продемонстрировали невидимую подмену инструкции.
Современные рассуждающие модели выполняют промежуточные вычисления перед формированием ответа. Полную цепочку таких вычислений поставщики обычно пользователю не показывают.
При этом API иногда требуется сохранить внутреннее состояние между запросами. Один из вариантов — вернуть клиенту непрозрачный зашифрованный блок, а при следующем обращении принять его обратно.
Документация OpenAI предусматривает поле reasoning.encrypted_content: оно содержит зашифрованное представление токенов рассуждения и предназначено для продолжения работы в режиме, где состояние разговора не хранится на сервере.
Google аналогично описывает thought signatures как зашифрованное представление внутреннего состояния рассуждения Gemini, необходимое для продолжения многошаговой работы. В режиме с хранением состояния на сервере Google управляет такими подписями самостоятельно.
Проблема оказалась не в существовании шифрования, а в том, где позволялось повторно использовать корректно подписанный блок.
Эксперименты авторов показали, что такие блоки можно было переносить в новый сеанс, использовать от имени другого пользователя и передавать другим совместимым моделям внутри экосистемы одного поставщика.
Исследователям не понадобилось подбирать криптографический ключ. Сначала мощная модель создавала внутреннее рассуждение. API возвращал его зашифрованное представление.
Этот блок переносили в запрос к более слабой совместимой модели того же поставщика. Затем исследователи обходили защиту слабой модели и просили её воспроизвести полученное состояние обычным текстом.
Для Claude таким декодером стала Haiku 4.5, для исследованных GPT — GPT-5.6 Luna, для Gemini — Gemini Robotics 1.6. Совместимость внутри семейств отличалась: у Gemini она оказалась особенно широкой, у GPT зависела от поколения модели. То есть Claude не расшифровывали через GPT, а Gemini — через Claude. Атака использовала совместимость внутри инфраструктуры одного поставщика.
На официальном сайте проекта stolen-thoughts.com опубликована демонстрация с Claude Opus 4.8 и Claude Haiku 4.5. Opus 4.8 получает математический вопрос: какой наибольший простой делитель числа 8 139 881? Модель решает задачу и возвращает зашифрованный блок скрытого рассуждения. Исследователи берут этот блок и передают его Claude Haiku 4.5.
После этого Haiku начинает воспроизводить содержимое обычным текстом. В демонстрации восстановленное рассуждение начинается с разбора того же числа и попыток его факторизации.

На странице проекта можно увидеть всю цепочку: запрос к Opus 4.8, непрозрачный зашифрованный блок, перенос состояния и результат, который выдаёт Haiku 4.5.
Исследователи повторили проверку уже не на одном показательном примере, а на 120 задачах Codeforces. Для Claude, GPT и Gemini число токенов восстановленного текста в большинстве запусков оказалось близко к числу скрытых токенов рассуждения, которое сам API сообщал для выставления счёта.
На графиках из статьи точки располагаются возле диагонали y = x: чем длиннее скрытое рассуждение по данным API, тем длиннее полученный после атаки текст. Это сильное косвенное подтверждение того, что восстанавливался именно большой фрагмент скрытого состояния, а не произвольное объяснение на ту же тему.
Авторы отдельно предупреждают: исходный открытый текст настоящей внутренней цепочки им недоступен, поэтому посимвольно доказать совпадение каждого восстановленного токена невозможно.
Дальше исследователи перешли от лабораторной демонстрации к реальным опубликованным данным. Они собрали 6708 публичных траекторий работы ИИ-агентов с GitHub и Hugging Face. Эти сеансы были созданы моделями Claude, GPT и Gemini и всё ещё содержали зашифрованные блоки рассуждений. После обработки получилось 315 320 восстановленных блоков. В 1028 блоках — примерно 0,3% выборки — обнаружился хотя бы один элемент, классифицированный как утечка чувствительной информации. Если считать целыми сеансами, хотя бы один такой элемент присутствовал в 328 из 6708 траекторий — примерно 4,9%.
В настоящих пользовательских сеансах, не относящихся к тестовым наборам, исследователи обнаружили: 62 уникальных ключа API, 33 пароля, 24 токена доступа, семь закрытых ключей, 30 личных адресов электронной почты, 130 имён и 36 почтовых адресов. Всего авторы насчитали 704 уникальных конфиденциальных элемента в настоящих пользовательских данных.
Особенно интересны 64 случая: эти сведения находились внутри восстановленного рассуждения, но отсутствовали в доступной исследователям видимой части опубликованного сеанса.
Авторы предлагают два возможных объяснения. Пользователь мог очистить видимую историю перед публикацией, оставив непрозрачный зашифрованный блок. Другой вариант — сведения могли появиться в состоянии модели из контекста, которого уже не было в опубликованной части журнала. Работа не позволяет определить источник всех 64 случаев однозначно.
На сайте исследования есть особенно неприятный пример. GPT-5.2 Codex выполняла задачу sanitize-git-repo: агенту поручили проверить репозиторий и удалить из него ключи API и другие секреты. В скрытом рассуждении модель сама перечисляла найденные значения, определяла, какие из них похожи на настоящие учётные данные, и планировала их замену. То есть операция очистки могла породить ещё одну копию чувствительного значения — уже внутри непрозрачного блока рассуждения.
Видимый файл можно почистить. Зашифрованную строку разработчик прочитать не мог, поэтому легко мог опубликовать её вместе с журналом. Именно здесь исследование имеет наиболее прямое практическое значение для разработчиков ИИ-агентов.
Авторы проверили ещё один сценарий: модель получает вредный запрос, рассуждает над ним, но в итоговом ответе срабатывает защита. Для демонстрации Claude Opus 4.8 получила переформулированный запрос из HarmBench о машинах, которые легко угнать, и способах их кражи. Видимый ответ остался безопасным.
Восстановленное скрытое рассуждение при этом содержало конкретные сведения об уязвимостях некоторых автомобилей и методах, которые используют угонщики. Затем блок прочитали через Haiku 4.5.
Отдельная глава посвящена тому, насколько пользовательская сводка рассуждений соответствует восстановленной скрытой версии. Авторы взяли задачи AIME 2025 и оставили только случаи, где длина восстановленного текста отличалась от числа скрытых токенов API максимум на 5%. Получилось всего 18 трасс Claude Opus 4.8 и 15 трасс GPT-5.6 Sol. В девяти из 18 случаев Opus называла ответ до полноценного вывода.
Причём в одном примере внутреннее рассуждение обозначало дальнейшие вычисления как проверку уже известного ответа. Сводка, доступная пользователю, меняла смысл так, что вычисление выглядело обычным самостоятельным выводом.
Исследователи искали в восстановленных рассуждениях слово cheat и нашли эпизоды, где модели рассматривали обход требований задачи. GPT-5.2 обдумывала жёсткую подстановку ответа для проверяющей системы. GPT-5 Codex рассматривала возможность формально обойти требование о поддержке нескольких процессоров. В других примерах Claude думала об ограничении поддерживаемого диапазона задачи или обходе подтверждения операции.
Но сами авторы подчёркивают проблему такого анализа: скрытые рассуждения местами трудно интерпретировать, а поиск по одному слову не позволяет измерить частоту подобного поведения.
Исследователи обнаружили еще одну проблему. Если зашифрованный блок можно перенести в другую сессию, внутрь него можно заранее поместить вредную инструкцию. Следующий пользователь видит только непрозрачную строку и не знает, какое состояние передаёт модели.
В демонстрации исследователи сформировали через o4-mini состояние с инструкцией делать резервную копию файла на внешний сервер. Затем этот зашифрованный блок передали GPT-5.6 Sol и попросили выполнить другую задачу: написать сценарий для изменения последнего слайда презентации.
Модель восприняла внедрённую инструкцию как часть собственного предыдущего состояния и сгенерировала сценарий, который помимо редактирования презентации отправлял файл на указанный внешний сервер.
В другом эксперименте тот же принцип проверили на длинной траектории работы Claude: внедрённая инструкция заставляла модель регулярно выгружать создаваемый файл.
Слабость была архитектурной: корректно подписанный зашифрованный блок разрешалось повторно использовать в слишком широком контексте. Совместимая модель на стороне того же поставщика могла обработать блок, после чего её уже заставляли вывести содержимое.
Авторы предлагают привязывать такие блоки к конкретному пользователю, сеансу, модели и истории разговора либо вообще хранить скрытое состояние на сервере, возвращая клиенту только случайный идентификатор.
Исследователи сообщили о проблеме поставщикам моделей, Microsoft и Hugging Face до публикации препринта. Поставщики подтвердили получение отчётов. После этого авторы больше не смогли провести тот же вариант атаки.
В разделе о воспроизводимости указано, что к августу 2026 года результаты основной демонстрации уже нельзя повторить описанным способом из-за мер, принятых поставщиками после раскрытия проблемы. Подробности изменений у каждого поставщика не опубликованы, а сами авторы ограничивают результаты версиями API, которые тестировали в начале июля 2026 года.
Проверить центральную демонстрацию можно непосредственно на официальном сайте исследования, а методику, ограничения и результаты — в полном тексте препринта на arXiv.
Есть новость? Станьте автором.
Мы сотрудничаем с независимыми исследователями и специалистами по кибербезопасности. Отправьте нам новость или предложите статью на рассмотрение редакции.