«When Context Gets Root: Privilege Escalation in LLM Harnesses» был размещён на arXiv 27 августа в 16:03:57 UTC. Авторы утверждают, что программная оболочка вокруг модели — а не сама модель — поднимает контролируемое атакующим содержимое файла в слот инструкций с наивысшим приоритетом, так что даже идеально послушная модель оказывается скомпрометированной.

Что тестировали

Шесть harnesses на актуальных версиях с указанными названиями: Claude Code (Opus 4.8, v2.1.210), Codex (GPT-5.5, v0.138.0), Gemini CLI (Gemini 3.1 Pro Preview, v0.50.0), Qwen Code (Qwen3.7 Max, v0.21.4), Kimi (Kimi 3, v0.36.0) и OpenCode (DeepSeek-V4-Pro-0813, v1.18.1). Атаки воспроизводятся через поставляемые функции — постоянные цели и запланированные задачи, — что делает их практическими, а не теоретическими.

Число из аннотации

«При неограниченном выполнении действий атаки достигают всех 13 целей на всех шести harnesses», а «при автоматическом пересмотре разрешений атаки достигают всех 13 целей на всех трёх harnesses, где доступен этот режим». Во введении также указаны средняя успешность 97,3% для повышения привилегий от tool к user и 80,3% для tool-to-system.

Что неверно в распространённой формулировке

«Тринадцать из тринадцати на шести из шести» звучит так, будто каждый агент падал каждый раз. Собственные таблицы статьи говорят о более узкой вещи: 13/13 означает, что каждая цель была успешно достигнута хотя бы один раз за повторные попытки, а не что успешна каждая попытка. Показатели на одну попытку в режиме Full Access, самом разрешительном из доступных, составляют: Claude Code — 31,7%, Gemini CLI — 61,7%, Qwen Code — 61,7%, Kimi — 64,9%, OpenCode — 72,5%. Только Codex достигает подлинных 100,0%. Честный заголовок звучит так: при достаточном числе повторов каждая цель в итоге срабатывает на каждом агенте, а коэффициент успеха колеблется примерно от трети до абсолютного значения.

Во-вторых, два режима подаются как равнозначные, но это не так. Автоматический пересмотр разрешений заметно помог ровно на одном harness: Codex снизился на 27,8 пункта, и в статье объясняется почему — «Auto PR у Codex активно проверяет вновь вставленные вызовы функций и их поведение во время выполнения». У Claude Code показатель вырос: с 31,7% до 37,1%, что при таких объёмах выборки выглядит скорее как шум, чем как работающая защита. Описывать оба режима как одинаково сломанные — значит стирать единственный механизм в исследовании, который вообще на что-то повлиял.

В-третьих, про знаменатель: у трёх из шести harnesses режима пересмотра разрешений нет вообще, так что формулировка «на всех трёх harnesses, где есть этот режим» означает три из трёх, а не шесть из шести.

Ревьюер, который одобрил атаку

Одна строка из статьи заслуживает полного цитирования: «В успешных случаях Claude Code ревьюер замечает изменения, внесённые в todo server, но всё равно одобряет их выполнение». Проверка сработала, увидела изменение и сказала «да».