
Due modi per uscire dalla sandbox di OpenAI Codex: Heapjack e Overpatch
- OrcaNUOVOOrcaCyber: GLM 5.3 Flash Abliterated2026-10-2795 tok/s
- OrcaNUOVOOrcaCyber: Qwen3.8 Flash Next Abliterated2026-10-26$0.80 / $1.60 per 1M di token · 252 tok/s
- OrcaNUOVOOrcaCyber: MiMo V2.6 Flash Abliterated2026-10-26$0.80 / $1.60 per 1M di token · 86 tok/s
- MoonshotNUOVOMoonshotAI: Kimi K3.1 Pro2026-10-2455Intelligenza
- OrcaNUOVOOrcaCyber: DeepSeek V4.1 Flash Abliterated2026-10-23$0.80 / $1.60 per 1M di token · 108 tok/s
- minimaxNUOVOMiniMax: M3.1 Flash2026-10-1943Intelligenza
- OrcaNUOVOOrca: OrcaCyber Ultra 1.02026-10-17$5.00 / $10.00 per 1M di token · 50 tok/s
- deepseekNUOVODeepSeek: DeepSeek V4.1 Flash 10172026-10-1745Intelligenza
- DeepSeekNUOVODeepSeek: DeepSeek V4.1 Flash2026-10-1740Intelligenza
- OrcaOrca: OrcaCyber Zero 1.52026-10-10$3.00 / $7.50 per 1M di token · 114 tok/s
- openaiOpenAI: GPT-6.1 Sol2026-09-2952Intelligenza
- anthropicAnthropic: Claude Sonnet 5.52026-09-2856Intelligenza
- typesafeTypeSafe: Jev 1.132026-09-24$0.04 / $0.00 per 1M di token · 120 tok/s
- OpenAIOpenAI: GPT-6 Luna2026-09-2238Intelligenza
- OpenAIOpenAI: GPT-6 Sol2026-09-2248Intelligenza
- AnthropicAnthropic: Claude Opus 5.52026-09-2258Intelligenza
- xiaomiXiaomi: MiMo-V2.6-Flash2026-09-2138Intelligenza
- xiaomiXiaomi: MiMo-V2.6-Pro2026-09-2146Intelligenza
- xAIGrok 4.72026-09-2146Intelligenza
- OrcaOrca: OrcaCyber Zero 1.02026-09-17$3.00 / $7.50 per 1M di token · 198 tok/s
Il 15 settembre 2026 Oren Yomtov, ricercatore principale di sicurezza presso Accomplish AI, ha pubblicato un resoconto tecnico di due modi distinti per uscire dalla sandbox che circonda l'agente di programmazione Codex di OpenAI. Entrambi sono stati segnalati a OpenAI il 12 agosto 2026 ed entrambi sono stati corretti entro otto giorni, secondo il suo resoconto: Heapjack in Codex Desktop build 26.818.21641 e Overpatch in Codex CLI 0.149.0. Heapjack è il più grave dei due. Non richiede nulla alla persona attaccata oltre ad aprire un repository in Codex e porre una domanda sul codice, e funziona in sola lettura, la modalità più restrittiva offerta dal prodotto, senza alcuna richiesta di approvazione e senza nulla visualizzato sullo schermo. Nessun CVE è stato assegnato a nessuna delle due vulnerabilità e nessun avviso autonomo di OpenAI è stato pubblicato, secondo la Cloud Security Alliance, e nessuno è stato segnalato come danneggiato da esse. È catalogato insieme alle altre voci relative al controllo degli agenti dell'anno in l'archivio degli incidenti AI, dove ogni record riporta i documenti di origine, il grado di attendibilità e l'indicatore di contestazione.
Heapjack: il token giaceva in un heap che il lato non attendibile poteva leggere
Codex Desktop non chiede prima di installare il componente attaccato da Yomtov. Al momento dell'installazione scrive un blocco node_repl nel file di configurazione globale in ~/.codex/config.toml, e Yomtov segnala che non esiste alcun consenso esplicito né alcuna impostazione che lo disattivi. Poiché la voce risiede nella configurazione condivisa anziché in una scelta per utente, un semplice utente di Codex CLI eredita lo stesso strumento senza che gli venga mai chiesto nulla.
Lo strumento node_repl è esso stesso un programma nativo che viene eseguito al di fuori della sandbox. Può aprire applicazioni, connettersi a socket Unix e modificare il file di configurazione globale. Ciò che avvia all'interno della sandbox è un singolo processo Node.js, e quel processo contiene due contesti di esecuzione JavaScript: uno attendibile che contiene il codice di OpenAI stesso, e uno non attendibile che esegue qualunque cosa sia stato chiesto all'agente di fare.
Il contesto attendibile dimostra di essere attendibile presentando un token casuale, generato ex novo a ogni esecuzione. Quello dovrebbe essere il confine tra i due contesti. Non lo è, perché entrambi i contesti risiedono in un singolo isolate V8 che condivide un unico heap di memoria, quindi il token è una stringa che si trova in memoria e che il codice non attendibile può leggere. Un commentatore che reagiva alla divulgazione su X ha espresso il concetto in modo più diretto, in una frase citata da BleepingComputer: "I contesti V8 isolano i globali, non la memoria, quindi la sandbox era in realtà una promessa che l'heap non ha mai accettato." Si tratta di una caratterizzazione, non di una prova; la prova è il proof of concept.
L'exploit di Yomtov fa esattamente ciò che quella descrizione implica. JavaScript non attendibile chiama v8.getHeapSnapshot(), analizza lo snapshot risultante alla ricerca di stringhe con la forma di un UUID e verifica ogni candidato. Una congettura errata restituisce "non autorizzato". Un token corretto abbinato a un argomento non valido restituisce invece un autentico errore di convalida. La differenza tra i due messaggi di errore è l'oracolo che identifica il valore corretto.
Con il token in mano, il processo in sandbox scrive la propria richiesta JSON sul file descriptor 1 — la stessa pipe stdout che il contesto fidato usa per raggiungere il parent nativo. Il parent convalida il token, ne trova uno valido e svolge il lavoro. Nella proof of concept quel lavoro era il comando di apertura di sistema, che passa la richiesta a launchd e avvia l'applicazione completamente al di fuori dell'albero dei processi di Codex. Lo stesso token consente connessioni a socket Unix arbitrari, tra cui un socket del daemon Docker, e raggiunge uno strumento per modificare il file di configurazione globale.
Tutto avviene in sola lettura, la modalità che un utente prudente seleziona proprio perché il repository che ha davanti non è attendibile. In nessuna fase è comparso un prompt di approvazione. Lo scenario pratico è breve: aprire un repository clonato in Codex, in modalità sola lettura, e fare una domanda sul codice. Chi ha scritto quel repository ottiene l'esecuzione di comandi senza sandbox sulla macchina, e nulla sullo schermo lo segnala.

Overpatch: uno strumento di patch che conferiva il genitore di tutto ciò che toccava
Il secondo difetto risiede in Codex CLI, l'agente da riga di comando open source, ed è un bug di permessi anziché di memoria. In modalità workspace-write l'agente può scrivere all'interno della cartella del progetto e in nessun altro luogo; un comando shell rivolto alla home directory viene rifiutato. Lo strumento apply_patch avrebbe dovuto far rispettare quel limite. Invece ricavava i propri permessi dai percorsi indicati nella patch che stava applicando e concedeva l'accesso in scrittura alla directory superiore di ciascuno di essi.
Indica un percorso sotto /tmp in una patch e l'autorizzazione si amplia fino alla radice del disco, perché il genitore di /tmp è /. Tutto qui il trucco.
L'exploit funzionante usa due voci in un'unica patch. La prima indica /tmp e non fa nulla di utile — fallisce, dato che un file non può sovrascrivere una directory — ed esiste solo per ampliare il permesso concesso. La seconda aggiunge una riga a .zshrc tramite un collegamento simbolico nella directory home. Rimuovi la prima voce e la scrittura viene rifiutata. Se la mantieni, il prossimo terminale che lo sviluppatore apre eseguirà la riga dell'attaccante senza sandbox, con la sandbox completamente fuori dai giochi.
Ciò rende Overpatch un bug di persistenza anziché un evento una tantum. Il file di avvio avvelenato viene eseguito di nuovo a ogni shell che lo sviluppatore apre, finché qualcuno non legge .zshrc e nota la riga aggiunta — ed è per questo che le indicazioni della Cloud Security Alliance sono di andarlo a cercare anziché attendere un sintomo.
Entrambi i bug collocano l'applicazione della regola all'interno della cosa stessa a cui la regola si applica.
La stessa impostazione di Yomtov è la parte che si spinge oltre Codex. apply_patch calcolava i propri permessi da input forniti da un attaccante. node_repl teneva in memoria, che il codice non attendibile poteva leggere, il segreto che separa il codice attendibile da quello non attendibile. In ogni caso, alla sandbox è stato detto, dall'interno, di lasciar passare qualcosa.
La forma non è nuova. BleepingComputer, che ha riportato la divulgazione il 20 settembre 2026, nota che nel luglio 2026 i ricercatori di Pillar Security hanno dimostrato la stessa idea su Cursor, Codex, Gemini CLI e Antigravity di Google, dove un agente che resta all'interno del proprio sandbox scrive un file che uno strumento attendibile al di fuori del sandbox esegue successivamente. Ciò che contraddistingue la coppia Codex è il bypass di sola lettura in Heapjack e l'assenza di qualsiasi impostazione per disabilitare il componente che lo contiene.
Le correzioni, e ciò che OpenAI ha detto e non ha detto
Secondo Accomplish, OpenAI ha corretto Heapjack in Codex Desktop build 26.818.21641 e Overpatch in Codex CLI 0.149.0. Entrambe le correzioni sono arrivate entro otto giorni dal report del 12 agosto — entro il 20 agosto, stando a una lettura letterale di quella tempistica — e Yomtov ha attribuito a OpenAI il merito dell'inversione di rotta.
OpenAI non ha pubblicato alcun avviso di sicurezza autonomo per nessuna delle due vulnerabilità e non è stato assegnato alcun identificativo CVE; la Cloud Security Alliance registra entrambe le assenze in una nota di ricerca datata 22 settembre 2026. Interpellato per un commento, un portavoce di OpenAI ha dichiarato a BleepingComputer: «Ringraziamo i ricercatori per averci contattato e condiviso le loro scoperte. Abbiamo affrontato entrambi i problemi ad agosto, ma stiamo continuamente rafforzando le nostre sandbox, con aggiornamenti recenti che stringono i controlli su dove gli agenti possono scrivere file e ampliano i test di tali protezioni su tutte le piattaforme.»
Quella dichiarazione conferma le correzioni e non dice nulla sui meccanismi. Non dice se le modifiche di agosto abbiano rimosso il pattern progettuale o chiuso i due specifici percorsi che ne consentono l'uscita. Nemmeno nessuno al di fuori di OpenAI lo ha affermato.

Che cosa è consolidato e che cosa dipende da un solo ricercatore
L'archivio classifica questa voce come un risultato di ricerca, gravità alta, regione globale, affidabilità B — documentato, ma da una fonte singola o secondaria — non contestato, senza alcun danno reale registrato. Tale grado è la lente giusta per leggere il resto di questo articolo, perché la divisione tra ciò che diverse parti confermano e ciò che solo lo scopritore afferma attraversa tutta la storia.
Stabilito, nel senso che più di una parte lo afferma:
• La divulgazione esiste ed è datata. L'articolo di Yomtov è stato pubblicato il 15 settembre 2026; entrambe le falle sono state segnalate a OpenAI il 12 agosto 2026 e, secondo il suo resoconto, corrette entro otto giorni.
• OpenAI conferma di essere intervenuta ad agosto. Il suo portavoce ha dichiarato a BleepingComputer che entrambi i problemi sono stati risolti, il che corrobora la tempistica di segnalazione e correzione in modo indipendente rispetto allo scopritore, anche se l'azienda non ha pubblicato alcun avviso né un proprio resoconto tecnico.
Le versioni corrette sono indicate in modo coerente. {{1}}Build 26.818.21641 per Codex Desktop e versione 0.149.0 per Codex CLI{{/1}} sono fornite da {{2}}Accomplish{{/2}}, ripetute da {{3}}BleepingComputer{{/3}} e riportate in un {{4}}avviso del 22 settembre 2026 di Uganda National Computer Emergency Response Team and Coordination Center{{/4}}, che ha classificato la coppia come {{5}}"Red"{{/5}}.
• Nessuna CVE, nessun avviso del fornitore e nessuno sfruttamento segnalato. La nota del Cloud Security Alliance del 22 settembre 2026 documenta l'assenza sia di una CVE sia di un avviso separato di OpenAI e non riporta casi confermati in cui un'organizzazione abbia riscontrato il meccanismo di persistenza di Overpatch in atto.
• L'archivio non contesta nulla di tutto ciò. Il record è contrassegnato come non controverso, e il suo grado di confidenza riflette lo schema di provenienza delle fonti anziché qualsiasi disaccordo sui fatti.
Non stabilito, o stabilito da nessuno all'infuori di chi lo trova:
• Il dettaglio del meccanismo è di Yomtov. L'oracolo heap-snapshot, il file descriptor condiviso, la concessione della directory padre — tutto proviene dal suo write-up e dal suo proof of concept. La Cloud Security Alliance, la cui nota è il riepilogo di terze parti più dettagliato in circolazione, descrive la sintesi del suo resoconto e delle notizie di BleepingComputer, e non afferma di aver riprodotto nessuno dei due exploit né testato nessuna delle due correzioni. L'avviso di CERT.UG raccoglie lo stesso materiale.
• Gli intervalli delle versioni vulnerabili non sono mai stati pubblicati. Sono indicate solo le versioni con la correzione, quindi non esiste un elenco di quali build precedenti presentassero ciascun difetto.
• Non è dichiarato se un'installazione con patch sia al sicuro dalla classe di bug, anziché da questi due casi. Il «rafforzare continuamente le nostre sandbox» di OpenAI è un impegno generale, non un'affermazione su un meccanismo specifico.
• Non sono state segnalate attività di sfruttamento di nessuna delle due vulnerabilità. Si tratta di un’assenza di segnalazioni, non di una constatazione di assenza, e la proof of concept mostra che il percorso Heapjack non lascia nulla sullo schermo che un utente possa notare.
Ciò su cui un utente può agire
Chiunque utilizzi una build di Codex Desktop precedente alla 26.818.21641, o una versione di Codex CLI precedente alla 0.149.0, si trova sul lato vulnerabile della linea tracciata da Accomplish, e l'aggiornamento è l'unico rimedio offerto dalla divulgazione. Inoltre, la Cloud Security Alliance raccomanda di controllare le sessioni passate di Codex Desktop che hanno coinvolto repository non attendibili per individuare attività di launchd o open e connessioni al socket Docker, e di leggere i file di avvio della shell — .zshrc, .bashrc e i loro equivalenti — per cercare comandi aggiunti anziché scritti dall'utente.
La stessa nota sconsiglia di considerare la modalità di sola lettura come una protezione quando il repository non è attendibile, che è la conclusione a cui Heapjack arriva da solo. Le sue raccomandazioni strutturali vanno oltre: isolamento fisico dei processi e della memoria invece di segreti condivisi e convenzioni, credenziali tenute fuori dalla portata dell'agente, e patch che fanno riferimento a percorsi esterni al progetto considerate sospette a prima vista. Queste sono proposte di terze parti. Non è pubblico se OpenAI ne abbia adottata qualcuna oltre ai due incrementi di versione.

Due cose meritano di essere tenute distinte, alla fine. Una è una coppia di bug in un agente di programmazione ampiamente usato, segnalati il 12 agosto 2026, corretti nel giro di otto giorni e chiusi in due numeri di build. L'altra è la questione di progettazione che Yomtov nomina — se una sandbox possa essere imposta dal codice che dovrebbe contenere — e a quella domanda non risponde un numero di versione. Né Accomplish né OpenAI hanno affermato che le modifiche di agosto la risolvano.
