Heapjack і Overpatch могли обійти заплановані межі Codex та зрештою спричинити дії на хост системі з недовіреного репозиторію. Heapjack використовував глобально налаштований помічник node repl і спільну купу V8, тоді як Overpatch зловживав правами apply patch, що визначалися зі шляхів у контрольованому зловмисником...
ОпублікувавВідредаговано за допомогою GPT-5.6 TerraЗображення створено за допомогою GPT Image 2
Research answer

Create a landscape editorial hero image for this Studio Global article: How did Accomplish AI researchers’ Heapjack and Overpatch vulnerabilities enable sandbox escapes and host-command execution in OpenAI’s Code. Article summary: Accomplish’s two findings bypassed Codex’s intended workspace/read-only boundaries by making a trusted enforcement component rely on attacker-influenced state. Both could turn an untrusted repository into host-level code. Topic tags: general, general web. Style: premium digital editorial illustration, source-backed research mood, clean composition, high detail, modern web publication hero. Use reference image context only for broad subject, composition, and topical grounding; do not copy the exact image. Avoid: logos, brand marks, copyrighted characters, real person likenesses, fake screenshots, UI text, readable text, watermarks, charts with fake numbers, clic
Пісочниця Codex має обмежувати, що AI-агент може читати, записувати й запускати. Дослідження Accomplish AI під назвами Heapjack і Overpatch показали: цей бар’єр можна було обійти, якщо довірений компонент або зберігав секрет у доступному для недовіреного коду місці, або надавав повноваження на підставі даних, які контролює агент. Обидві проблеми вже виправлено. 4
8
Heapjack стосувався інтеграції node_repl, яку встановлював Codex Desktop. За даними дослідників, застосунок Desktop записував конфігурацію MCP-сервера до глобального файлу ~/.codex/config.toml. Тому сесії CLI, що використовували цю спільну конфігурацію, також могли успадкувати цей помічник. 8
9
Проблема полягала в розділенні контекстів усередині JavaScript-середовища:
Батьківський процес працював поза пісочницею. Отже, це могло відкрити шлях до дій на рівні хост-машини, зокрема виконання команд, навіть коли Codex формально працював у режимі лише для читання. Суть була не в самому виконанні JavaScript, а в тому, що секрет, який мав відрізняти довірені запити від недовірених, залишався в пам’яті, доступній недовіреній стороні. 8
15
Overpatch зачіпав apply_patch у Codex CLI в режимі запису до робочої області. Інструмент мав дозволяти редагування лише в межах workspace, але логіка авторизації надавала область запису на основі батьківських каталогів, згаданих у самому патчі. 4
Тобто шляхи в патчі стали критичними для безпеки вхідними даними. Accomplish описала доказ концепції: згадка про на перший погляд марний шлях /tmp розширювала дозволи до кореня файлової системи. Інша зміна в патчі могла пройти через символьне посилання, контрольоване репозиторієм, і змінити файл за межами workspace — зокрема файл ініціалізації оболонки в домашній теці користувача. 4
9
Наслідок міг проявитися не відразу, але був суттєвим: код, доданий до файлу запуску оболонки, виконався б поза sandbox під час наступного відкриття термінала розробником. Для такої дії на хості звичайне запитання на підтвердження не вимагалося. 4
7
Технічні шляхи Heapjack та Overpatch різні, але обидва випадки вказують на одну помилку проєктування: механізм із вищими привілеями довіряв даним, до яких мала доступ недовірена сторона.
| Вразливість | Чому довіряли | Чому межа не спрацювала |
|---|---|---|
| Heapjack | Токену авторизації у спільній купі V8 | Недовірений код міг дістати секрет, який відрізняв авторизовані запити. |
| Overpatch | Шляхам, наданим агентом у патчі | Ці шляхи впливали на обсяг прав запису, а не лише описували потрібну зміну. |
Це приклад проблеми «заплутаного заступника» (confused deputy): компонент із вищими правами виконує дію від імені менш довіреного вводу, не перевіривши належно ані повноваження, ані кінцеву ціль. Тому недостатньо ізолювати лише shell агента, якщо помічники, токени, конфігурація та процеси-оркестратори залишаються привілейованими або залежать від вмісту репозиторію.
Інші виявлені у 2026 році обходи sandbox у coding-агентах мали інший механізм, але подібну архітектурну причину. У звітах Accomplish про Beltdown і Beltdown2 оболонка агента була ізольована, тоді як внутрішні команди Git у зовнішньому керувальному середовищі запускалися поза sandbox. Налаштування core.fsmonitor у .git/config репозиторію могло вказати Git на допоміжну програму, яку він виконає під час перевірки робочого дерева. 17
18
Manifold Security назвала ширший клас таких проблем GitSpawn: контрольована репозиторієм конфігурація Git могла спричинити запуск обраного зловмисником коду, щойно агент починав аналізувати проєкт, інколи ще до змістовного рішення про довіру чи підтвердження дії. 20
21
Висновок не в тому, що кожен репозиторій автоматично небезпечний у будь-якому сценарії. Але репозиторій слід вважати потенційно активним вводом: інструменти можуть читати метадані, розв’язувати символьні посилання, застосовувати патчі, запускати хуки або допоміжні процеси. Межа довіри продукту з AI-агентом охоплює всі ці шляхи, а не тільки видиму команду в терміналі.
Мінімальні версії з виправленнями, про які повідомлялося:
Accomplish повідомила, що поінформувала OpenAI про обидві проблеми 12 серпня 2026 року, а виправлення з’явилися протягом восьми днів. 9
.git-метадані. Звичайний git clone зазвичай не переносить локальний .git/config віддаленого репозиторію. Практичний висновок простий: встановіть виправлені версії Codex, але не покладайтеся лише на внутрішню пісочницю як на єдиний захист між незнайомим репозиторієм і робочою машиною розробника.
Studio Global AI
This page includes a source-backed answer you can continue inside Studio Global.
Heapjack і Overpatch могли обійти заплановані межі Codex та зрештою спричинити дії на хост системі з недовіреного репозиторію.
Heapjack і Overpatch могли обійти заплановані межі Codex та зрештою спричинити дії на хост системі з недовіреного репозиторію. Heapjack використовував глобально налаштований помічник node repl і спільну купу V8, тоді як Overpatch зловживав правами apply patch, що визначалися зі шляхів у контрольованому зловмисником патчі.
Схожі інциденти 2026 року з Git мали інший технічний механізм, але ту саму архітектурну проблему: поза sandbox залишався шлях оркестрації, який довіряв даним із репозиторію.
Heapjack і Overpatch могли обійти заплановані межі Codex та зрештою спричинити дії на хост системі з недовіреного репозиторію. Heapjack використовував глобально налаштований помічник node repl і спільну купу V8, тоді як Overpatch зловживав правами apply patch, що визначалися зі шляхів у контрольованому зловмисником...
ОпублікувавВідредаговано за допомогою GPT-5.6 TerraЗображення створено за допомогою GPT Image 2
Research answer

Create a landscape editorial hero image for this Studio Global article: How did Accomplish AI researchers’ Heapjack and Overpatch vulnerabilities enable sandbox escapes and host-command execution in OpenAI’s Code. Article summary: Accomplish’s two findings bypassed Codex’s intended workspace/read-only boundaries by making a trusted enforcement component rely on attacker-influenced state. Both could turn an untrusted repository into host-level code. Topic tags: general, general web. Style: premium digital editorial illustration, source-backed research mood, clean composition, high detail, modern web publication hero. Use reference image context only for broad subject, composition, and topical grounding; do not copy the exact image. Avoid: logos, brand marks, copyrighted characters, real person likenesses, fake screenshots, UI text, readable text, watermarks, charts with fake numbers, clic
Пісочниця Codex має обмежувати, що AI-агент може читати, записувати й запускати. Дослідження Accomplish AI під назвами Heapjack і Overpatch показали: цей бар’єр можна було обійти, якщо довірений компонент або зберігав секрет у доступному для недовіреного коду місці, або надавав повноваження на підставі даних, які контролює агент. Обидві проблеми вже виправлено. 4
8
Heapjack стосувався інтеграції node_repl, яку встановлював Codex Desktop. За даними дослідників, застосунок Desktop записував конфігурацію MCP-сервера до глобального файлу ~/.codex/config.toml. Тому сесії CLI, що використовували цю спільну конфігурацію, також могли успадкувати цей помічник. 8
9
Проблема полягала в розділенні контекстів усередині JavaScript-середовища:
Батьківський процес працював поза пісочницею. Отже, це могло відкрити шлях до дій на рівні хост-машини, зокрема виконання команд, навіть коли Codex формально працював у режимі лише для читання. Суть була не в самому виконанні JavaScript, а в тому, що секрет, який мав відрізняти довірені запити від недовірених, залишався в пам’яті, доступній недовіреній стороні. 8
15
Overpatch зачіпав apply_patch у Codex CLI в режимі запису до робочої області. Інструмент мав дозволяти редагування лише в межах workspace, але логіка авторизації надавала область запису на основі батьківських каталогів, згаданих у самому патчі. 4
Тобто шляхи в патчі стали критичними для безпеки вхідними даними. Accomplish описала доказ концепції: згадка про на перший погляд марний шлях /tmp розширювала дозволи до кореня файлової системи. Інша зміна в патчі могла пройти через символьне посилання, контрольоване репозиторієм, і змінити файл за межами workspace — зокрема файл ініціалізації оболонки в домашній теці користувача. 4
9
Наслідок міг проявитися не відразу, але був суттєвим: код, доданий до файлу запуску оболонки, виконався б поза sandbox під час наступного відкриття термінала розробником. Для такої дії на хості звичайне запитання на підтвердження не вимагалося. 4
7
Технічні шляхи Heapjack та Overpatch різні, але обидва випадки вказують на одну помилку проєктування: механізм із вищими привілеями довіряв даним, до яких мала доступ недовірена сторона.
| Вразливість | Чому довіряли | Чому межа не спрацювала |
|---|---|---|
| Heapjack | Токену авторизації у спільній купі V8 | Недовірений код міг дістати секрет, який відрізняв авторизовані запити. |
| Overpatch | Шляхам, наданим агентом у патчі | Ці шляхи впливали на обсяг прав запису, а не лише описували потрібну зміну. |
Це приклад проблеми «заплутаного заступника» (confused deputy): компонент із вищими правами виконує дію від імені менш довіреного вводу, не перевіривши належно ані повноваження, ані кінцеву ціль. Тому недостатньо ізолювати лише shell агента, якщо помічники, токени, конфігурація та процеси-оркестратори залишаються привілейованими або залежать від вмісту репозиторію.
Інші виявлені у 2026 році обходи sandbox у coding-агентах мали інший механізм, але подібну архітектурну причину. У звітах Accomplish про Beltdown і Beltdown2 оболонка агента була ізольована, тоді як внутрішні команди Git у зовнішньому керувальному середовищі запускалися поза sandbox. Налаштування core.fsmonitor у .git/config репозиторію могло вказати Git на допоміжну програму, яку він виконає під час перевірки робочого дерева. 17
18
Manifold Security назвала ширший клас таких проблем GitSpawn: контрольована репозиторієм конфігурація Git могла спричинити запуск обраного зловмисником коду, щойно агент починав аналізувати проєкт, інколи ще до змістовного рішення про довіру чи підтвердження дії. 20
21
Висновок не в тому, що кожен репозиторій автоматично небезпечний у будь-якому сценарії. Але репозиторій слід вважати потенційно активним вводом: інструменти можуть читати метадані, розв’язувати символьні посилання, застосовувати патчі, запускати хуки або допоміжні процеси. Межа довіри продукту з AI-агентом охоплює всі ці шляхи, а не тільки видиму команду в терміналі.
Мінімальні версії з виправленнями, про які повідомлялося:
Accomplish повідомила, що поінформувала OpenAI про обидві проблеми 12 серпня 2026 року, а виправлення з’явилися протягом восьми днів. 9
.git-метадані. Звичайний git clone зазвичай не переносить локальний .git/config віддаленого репозиторію. Практичний висновок простий: встановіть виправлені версії Codex, але не покладайтеся лише на внутрішню пісочницю як на єдиний захист між незнайомим репозиторієм і робочою машиною розробника.
Studio Global AI
This page includes a source-backed answer you can continue inside Studio Global.
Heapjack і Overpatch могли обійти заплановані межі Codex та зрештою спричинити дії на хост системі з недовіреного репозиторію.
Heapjack і Overpatch могли обійти заплановані межі Codex та зрештою спричинити дії на хост системі з недовіреного репозиторію. Heapjack використовував глобально налаштований помічник node repl і спільну купу V8, тоді як Overpatch зловживав правами apply patch, що визначалися зі шляхів у контрольованому зловмисником патчі.
Схожі інциденти 2026 року з Git мали інший технічний механізм, але ту саму архітектурну проблему: поза sandbox залишався шлях оркестрації, який довіряв даним із репозиторію.