Безопасность · 23 сентября 2026 г.

Также опубликовано на Deutsch, Italiano, ไทย, Polski, हिन्दी, Português (Brasil)

Исследователи обходят песочницу OpenAI Codex и выполняют команды на хост‑машине

blue padlock
Maxim Zhgulev / Unsplash

Исследователи обнаружили два способа обхода песочницы OpenAI Codex, позволяющих запускать произвольные команды на хост‑машине из самого строгого режима работы. Оба уязвимости были сообщены OpenAI 12 августа и исправлены в течение восьми дней, сообщает Oren Yomtov из Accomplish AI.

Первый метод, названный Heapjack, превращает обычную операцию в удалённое выполнение кода: открыв чужой репозиторий в Codex и задав вопрос о коде, любой, кто написал репозиторий, получает возможность выполнить команды на вашем компьютере без подтверждения и без визуального индикатора. Техника использует компонент node_repl, который Codex Desktop записывает в глобальный файл ~/.codex/config.toml при установке. Поскольку запись находится в общем конфиге, пользователи CLI также наследуют этот доступ без запроса.

Внутри одного процесса Node.js размещаются два контекста JavaScript: один доверенный, содержащий код OpenAI, и второй ненадёжный, выполняющий код агента. Доверенный контекст подтверждает свою легитимность случайным токеном, генерируемым при каждом запуске, но оба контекста используют общую кучу памяти, поэтому токен доступен ненадёжному коду. Ненадёжный участок берёт снимок кучи с помощью v8.getHeapSnapshot() и перебирает строки, похожие на UUID, пока не получит правильный токен, после чего может записать свой запрос в тот же канал, используемый доверенным контекстом для общения с нативным процессом‑родителем. Родитель проверяет токен, признаёт его валидным и выполняет работу, позволяя запустить внешние приложения, такие как утилита open, доступ к Unix‑socket или к дампу Docker‑демона.

Второй дефект, Overpatch, находится в открытом исходном коде Codex CLI. В режиме workspace‑write агент может писать только внутри проекта, но исследователи заставили инструмент apply_patch игнорировать это ограничение, указав в патче путь /tmp. Это дало права записи в корень файловой системы, после чего в файл .zshrc был добавлен malicious‑line через символическую ссылку в домашний каталог. При следующем открытии терминала выполнялась attacker‑controlled команда без ограничений.

Оба уязвимости показывают одну и ту же модель: механизм контроля находился внутри того же процесса, который он должен был защищать. В случае node_repl граница доверия хранилась в общей памяти, а в случае apply_patch права определялись входными данными от атакующего.

Паттерн не новый: в июле 2026 года исследователи из Pillar Security продемонстрировали аналогичную технику, обходя песочницы Cursor, Gemini CLI и Google Antigravity, где агент внутри песочницы записывает файл, который позже запускает доверенный внешний инструмент.

В ответ на публикацию Yomtov в X один из комментаторов отметил, что «контексты V8 изолируют глобалы, а не память, поэтому песочница была лишь обещанием, которое куча никогда не принимала». Другой назвал границу доверия «комнатным разделителем».

OpenAI устранила Heapjack в версии Codex Desktop 26.818.21641 и Overpatch в Codex CLI 0.149.0, как сообщает Accomplish. Пользователям рекомендуется обновиться до этих версий или более новых.

В заявлении для BleepingComputer представитель OpenAI поблагодарил исследователей за сообщение и подчеркнул, что компания продолжает укреплять свои песочницы, усиливая контроль над тем, где агенты могут писать файлы и расширяя тестирование этих защит.

Обновление от 21 сентября, 05:29 AM ET: добавлено официальное заявление OpenAI после публикации.