
Два способа выйти из песочницы OpenAI Codex: Heapjack и Overpatch
- OrcaНОВИНКАOrcaCyber: GLM 5.3 Flash Abliterated2026-10-2795 tok/s
- OrcaНОВИНКАOrcaCyber: Qwen3.8 Flash Next Abliterated2026-10-26$0.80 / $1.60 за 1 млн токенов · 252 tok/s
- OrcaНОВИНКАOrcaCyber: MiMo V2.6 Flash Abliterated2026-10-26$0.80 / $1.60 за 1 млн токенов · 86 tok/s
- MoonshotНОВИНКАMoonshotAI: Kimi K3.1 Pro2026-10-2455Интеллект
- OrcaНОВИНКАOrcaCyber: DeepSeek V4.1 Flash Abliterated2026-10-23$0.80 / $1.60 за 1 млн токенов · 108 tok/s
- minimaxНОВИНКАMiniMax: M3.1 Flash2026-10-1943Интеллект
- OrcaНОВИНКАOrca: OrcaCyber Ultra 1.02026-10-17$5.00 / $10.00 за 1 млн токенов · 50 tok/s
- deepseekНОВИНКАDeepSeek: DeepSeek V4.1 Flash 10172026-10-1745Интеллект
- DeepSeekНОВИНКАDeepSeek: DeepSeek V4.1 Flash2026-10-1740Интеллект
- OrcaOrca: OrcaCyber Zero 1.52026-10-10$3.00 / $7.50 за 1 млн токенов · 114 tok/s
- openaiOpenAI: GPT-6.1 Sol2026-09-2952Интеллект
- anthropicAnthropic: Claude Sonnet 5.52026-09-2856Интеллект
- typesafeTypeSafe: Jev 1.132026-09-24$0.04 / $0.00 за 1 млн токенов · 120 tok/s
- OpenAIOpenAI: GPT-6 Luna2026-09-2238Интеллект
- OpenAIOpenAI: GPT-6 Sol2026-09-2248Интеллект
- AnthropicAnthropic: Claude Opus 5.52026-09-2258Интеллект
- xiaomiXiaomi: MiMo-V2.6-Flash2026-09-2138Интеллект
- xiaomiXiaomi: MiMo-V2.6-Pro2026-09-2146Интеллект
- xAIGrok 4.72026-09-2146Интеллект
- OrcaOrca: OrcaCyber Zero 1.02026-09-17$3.00 / $7.50 за 1 млн токенов · 198 tok/s
15 сентября 2026 года Орен Йомтов, ведущий исследователь безопасности в Accomplish AI, опубликовал технический отчёт о двух отдельных способах выхода из песочницы, окружающей агент программирования Codex от OpenAI. Согласно его материалу, оба были переданы в OpenAI 12 августа 2026 года и оба исправлены в течение восьми дней: Heapjack в Codex Desktop сборки 26.818.21641 и Overpatch в Codex CLI 0.149.0. Heapjack — более серьёзная из двух. Атакуемому человеку нужно лишь открыть репозиторий в Codex и задать вопрос о коде, и эксплойт срабатывает в режиме только для чтения, самом строгом режиме, который предлагает продукт, без запроса подтверждения и без чего-либо, отображаемого на экране. Ни одной из уязвимостей не присвоен CVE, и отдельного бюллетеня OpenAI не опубликовано, по данным Cloud Security Alliance, и никто не сообщал о пострадавших от них. Он включён вместе с другими записями года о контроле над агентами в архив инцидентов ИИ, где каждая запись содержит свои исходные документы, степень достоверности и отметку об оспаривании.
Heapjack: токен находился в куче, которую могла прочитать недоверенная сторона
Codex Desktop не спрашивает перед установкой компонента, атакованного Йомтовом. При установке он записывает блок node_repl в глобальный файл конфигурации по пути ~/.codex/config.toml, и Йомтов сообщает, что нет ни варианта явного согласия, ни настройки, которая бы его отключала. Поскольку запись находится в общей конфигурации, а не в выборе отдельного пользователя, обычный пользователь Codex CLI наследует тот же инструмент, даже не будучи спрошенным.
Инструмент {{1}}node_repl{{/1}} сам по себе является нативной программой, которая выполняется вне песочницы. Он может открывать приложения, подключаться к Unix-сокетам и редактировать глобальный файл конфигурации. То, что он запускает внутри песочницы, — это один процесс Node.js, и этот процесс содержит два контекста выполнения JavaScript: доверенный, содержащий собственный код OpenAI, и недоверенный, выполняющий то, что агенту было поручено сделать.
Доверенный контекст доказывает, что ему доверяют, предъявляя случайный токен, создаваемый заново при каждом запуске. Это должно быть границей между двумя контекстами. Но это не так, потому что оба контекста живут в одном изоляте V8 с общей единой кучей памяти, поэтому токен — это строка в памяти, которую может прочитать недоверенный код. Один комментатор, реагируя на раскрытие информации в X, выразил эту мысль резче — в строке, которую процитировал BleepingComputer: «Контексты V8 изолируют глобальные объекты, а не память, так что песочница на самом деле была обещанием, на которое куча никогда не соглашалась». Это характеристика, а не доказательство; доказательство — это proof of concept.
Эксплойт Йомтова делает ровно то, что подразумевает это описание. Недоверенный JavaScript вызывает v8.getHeapSnapshot(), сканирует полученный снимок кучи на строки в формате UUID и проверяет каждого кандидата. При неверной догадке возвращается «not authorized». Правильный токен в сочетании с недопустимым аргументом вместо этого возвращает настоящую ошибку валидации. Разница между двумя сообщениями об ошибке и есть оракул, позволяющий выявить правильное значение.
Имея токен на руках, процесс в песочнице записывает свой JSON-запрос в файловый дескриптор 1 — тот же канал stdout, который доверенный контекст использует для связи с родительским нативным процессом. Родитель проверяет токен, находит действительный и выполняет работу. В рамках доказательства концепции этой работой была системная команда open, которая передаёт запрос launchd и запускает приложение полностью вне дерева процессов Codex. Тот же токен разрешает подключения к произвольным Unix-сокетам, включая сокет демона Docker, и даёт доступ к инструменту для редактирования глобального файла конфигурации.
Всё это выполняется в режиме только для чтения — том самом режиме, который осторожный пользователь выбирает именно потому, что репозиторий перед ним не является доверенным. Ни на каком этапе запрос на подтверждение не появлялся. Практический сценарий краток: открыть клонированный репозиторий в Codex в режиме только для чтения и задать вопрос о коде. Тот, кто написал этот репозиторий, получает выполнение команд без песочницы на машине, и на экране ничто об этом не сообщает.

Overpatch: инструмент для патчей, который наделял родителем всё, к чему прикасался.
Вторая ошибка кроется в Codex CLI — открытом агенте командной строки, и это ошибка разрешений, а не памяти. В режиме workspace-write агент может писать внутри папки проекта и больше нигде; команда оболочки, нацеленная на домашний каталог, отклоняется. Инструмент apply_patch должен был удерживать эту границу. Вместо этого он выводил свои разрешения из путей, указанных в применяемом патче, и предоставлял доступ на запись в родительский каталог каждого из них.
Укажите в патче путь под /tmp — и разрешение расширится до корня диска, потому что родительским каталогом /tmp является /. В этом и весь трюк.
Рабочий эксплойт использует две записи в одном патче. Первая указывает на /tmp и не делает ничего полезного — она завершается неудачей, поскольку файл не может перезаписать каталог, — и существует лишь для того, чтобы расширить выданные права. Вторая добавляет строку в .zshrc через символическую ссылку в домашний каталог. Уберите первую запись — и в записи будет отказано. Оставьте её — и следующий терминал, который откроет разработчик, выполнит строку атакующего вне песочницы, причём песочница вообще больше не будет участвовать.
Это делает Overpatch багом персистентности, а не одноразовым срабатыванием. Отравленный файл автозапуска выполняется снова при каждой оболочке, которую открывает разработчик, пока кто-нибудь не прочитает .zshrc и не заметит добавленную строку — поэтому Cloud Security Alliance рекомендует искать его, а не ждать появления симптома.
Оба бага помещают механизм контроля внутрь контролируемого объекта.
Формулировка самого Йомтова — это та часть, которая выходит за пределы Codex. apply_patch вычислял собственные разрешения на основе ввода, предоставленного злоумышленником. node_repl хранил секрет, отделяющий доверенный код от недоверенного, в памяти, которую недоверенный код мог прочитать. В каждом случае песочнице изнутри давали указание что-то пропустить.
Эта схема не нова. BleepingComputer, сообщивший о раскрытии 20 сентября 2026 года, отмечает, что в июле 2026 года исследователи Pillar Security продемонстрировали ту же идею в Cursor, Codex, Gemini CLI и Google Antigravity, где агент, остающийся внутри своей песочницы, записывает файл, который затем выполняет доверенный инструмент вне песочницы. Что отличает пару в Codex — это обход режима «только для чтения» в Heapjack и отсутствие какой-либо настройки, позволяющей отключить компонент, который его содержит.
Исправления, а также что OpenAI сказала и о чём умолчала
OpenAI исправила Heapjack в сборке Codex Desktop 26.818.21641 и Overpatch в Codex CLI 0.149.0, сообщает Accomplish. Оба исправления вышли в течение восьми дней после отчёта от 12 августа — к 20 августа, если буквально читать эту хронологию, — и Йомтов отдал OpenAI должное за этот разворот.
OpenAI не опубликовала отдельного бюллетеня по безопасности ни для одной из этих уязвимостей, и ни одной из них не был присвоен идентификатор CVE; Cloud Security Alliance фиксирует оба этих отсутствия в исследовательской заметке от 22 сентября 2026 года. На просьбу о комментарии представитель OpenAI сообщил BleepingComputer: «Мы благодарим исследователей за то, что они связались с нами и поделились своими находками. Мы устранили обе проблемы в августе, но постоянно усиливаем наши песочницы, а недавние обновления ужесточают контроль над тем, куда агенты могут записывать файлы, и расширяют тестирование этих механизмов защиты на разных платформах».
Это заявление подтверждает исправления и ничего не говорит о механизмах. В нём не сказано, устранили ли августовские изменения сам шаблон проектирования или закрыли два конкретных пути выхода из него. Никто за пределами OpenAI этого тоже не говорил.

Что установлено, а что держится на одном исследователе
Архив регистрирует эту запись как исследовательскую находку: степень серьёзности — высокая, регион — глобальный, достоверность — B (задокументировано, но из одного или вторичного источника), не оспаривается, реального ущерба не зафиксировано. Эта оценка — правильная оптика для чтения остальной части материала, потому что разделение между тем, что подтверждают несколько сторон, и тем, что утверждает только сам обнаруживший, проходит через всю историю.
Установлено — в том смысле, что об этом заявляет более одной стороны:
Раскрытие существует и датировано. Отчёт Йомтова был опубликован 15 сентября 2026 года; обе уязвимости были сообщены OpenAI 12 августа 2026 года и, по его словам, исправлены в течение восьми дней.
• OpenAI подтверждает, что приняла меры в августе. Её представитель сообщил BleepingComputer, что обе проблемы были устранены, и это независимо от обнаружившего их лица подтверждает хронологию «сообщение — исправление», хотя компания не опубликовала ни уведомления, ни собственного технического отчёта.
• Исправленные версии указаны согласованно. Сборка 26.818.21641 для Codex Desktop и версия 0.149.0 для Codex CLI приводятся в сообщении Accomplish, повторяются в BleepingComputer и фигурируют в бюллетене от 22 сентября 2026 года, выпущенном Национальной группой реагирования на компьютерные инциденты и координационным центром Уганды, которая присвоила этой паре рейтинг «Red».
• Ни CVE, ни рекомендаций поставщика, ни сообщений об эксплуатации. В заметке Cloud Security Alliance от 22 сентября 2026 года отмечается отсутствие как CVE, так и отдельной рекомендации OpenAI, а также сообщается об отсутствии подтверждённых случаев, когда организация обнаружила бы механизм закрепления Overpatch в системе.
• Архив ничего из этого не оспаривает. Запись помечена как неоспариваемая (disputed: false), а её оценка достоверности отражает характер источников, а не какие-либо разногласия по поводу фактов.
Не установлено или установлено никем, кроме самого нашедшего:
• Детали механизма принадлежат Йомтову. Оракул снимка кучи, общий файловый дескриптор, предоставление родительского каталога — всё это взято из его описания и его proof of concept. Cloud Security Alliance, чья заметка является наиболее подробным сторонним резюме в обращении, описывает свою работу как синтез его рассказа и материалов BleepingComputer и не утверждает, что воспроизводила какой-либо из эксплойтов или проверяла какое-либо из исправлений. Бюллетень CERT.UG содержит тот же материал.
• Диапазоны уязвимых версий так и не были опубликованы. Указаны только версии с исправлениями, поэтому нет списка того, какие из более ранних сборок содержали каждую уязвимость.
• Не указано, защищена ли пропатченная установка от всего класса ошибок, а не только от этих двух случаев. Фраза OpenAI о «постоянном усилении наших песочниц» — это общее обязательство, а не заявление о конкретном механизме.
• Никто не сообщал об эксплуатации ни одной из этих уязвимостей. Это отсутствие сообщений, а не вывод об отсутствии, и демонстрация концепции показывает, что путь через Heapjack не оставляет на экране ничего, что пользователь мог бы заметить.
То, на что пользователь может воздействовать
Все, кто использует сборку Codex Desktop старше 26.818.21641 или версию Codex CLI старше... точнее, более раннюю, чем 0.149.0, находятся на уязвимой стороне черты, которую проводит Accomplish, и обновление — единственное средство, которое предлагает раскрытие информации. Помимо этого, Cloud Security Alliance рекомендует проверить прошлые сеансы Codex Desktop, в которых использовались недоверенные репозитории, на наличие активности launchd или open и подключений к сокету Docker, а также просмотреть файлы запуска оболочки — .zshrc, .bashrc и их аналоги — на команды, которые были добавлены, а не введены самим пользователем.
Та же заметка рекомендует не рассматривать режим только для чтения как защиту, если репозиторий не является доверенным, — к этому же выводу самостоятельно приходит Heapjack. Её структурные рекомендации идут дальше: физическая изоляция процессов и памяти вместо общих секретов и соглашений, хранение учётных данных вне пределов досягаемости агента, а также патчи, ссылающиеся на пути за пределами проекта, которые следует считать подозрительными с первого взгляда. Это предложения третьей стороны. Публично неизвестно, приняла ли OpenAI какие-либо из них помимо двух повышений версии.

В конце стоит не смешивать две вещи. Одна — пара багов в широко используемом агенте для программирования, о которых сообщили 12 августа 2026 года, исправили в течение восьми дней и закрыли в двух номерах сборок. Другая — вопрос проектирования, который называет Йомтов: можно ли обеспечить соблюдение песочницы с помощью кода, который она должна содержать, — и на этот вопрос номер версии не отвечает. Ни Accomplish, ни OpenAI не заявили, что августовские изменения его решают.
