Оказывается, hidden reasoning у frontier-моделей можно было буквально украсть за два API-вызова 😨
Очень крутая работа Stolen Thoughts про уязвимость reasoning API у OpenAI, Anthropic и Google.
Механика, по сути, гениально простая.
Когда reasoning-модель думает, полный Chain-of-Thought пользователю не показывают. Но чтобы продолжать диалог, API возвращает клиенту зашифрованный reasoning block, который потом можно отправить обратно.
Проблема оказалась в том, что эти блоки были недостаточно привязаны к конкретной модели, сессии и пользователю.
Исследователи брали encrypted reasoning от сильной модели — условно Opus — и передавали его более слабой модели того же провайдера. Слабую модель уже гораздо проще jailbreak'нуть и попросить вывести содержимое reasoning.
И она фактически становилась decryption oracle и печатала reasoning сильной модели plaintext'ом.
Причем показали это для Anthropic, OpenAI и Google.
Самое неприятное даже не кража интеллектуальной собственности модели.
Исследователи собрали 6 708 публичных agent trajectories с GitHub и Hugging Face, внутри которых остались encrypted reasoning blocks, и восстановили 315 320 reasoning traces.
Там нашли 704 уникальных sensitive artifacts: API keys, passwords, access tokens, email, внутренние URL и другую приватную информацию.
Причем часть данных существовала только внутри hidden reasoning и вообще никогда не появлялась в видимом ответе модели.
То есть разработчик мог посмотреть лог, решить:
«Ну тут ничего секретного нет»,
запушить trajectory на GitHub — а внутри encrypted blob лежал пароль или API key.
Еще прикольный эксперимент сделали с Kimi-K3: ей подсовывали всего первые ~1% reasoning от Opus 4.8, и даже такого маленького seed хватало, чтобы итоговый ответ Kimi начинал двигаться в сторону формулировок Opus. То есть reasoning реально является очень мощным hidden state, который управляет дальнейшей генерацией.
И вывод для всей агентской разработки:
encrypted ≠ safe.
Если opaque blob можно перенести в другой security context, а сервер потом сам его расшифрует и отдаст модели — это, по сути, bearer token с огромным количеством скрытого контекста внутри.
После responsible disclosure провайдеры дыру уже прикрыли: атаки из paper сейчас не воспроизводятся. Reasoning blocks стали жестче привязывать к модели и контексту сессии.
Но сама работа очень хорошая.
Мы всё больше строим agent infrastructure вокруг hidden state моделей — reasoning, memory, compaction, checkpoints — и такие объекты надо начинать воспринимать ровно как credentials и secrets, а не как какие-то безобидные технические поля API.
stolen-thoughts.com
Post #586
443
- 🔥 13
- 👍 5
- ❤ 2