Heapjack et Overpatch pouvaient contourner les limites prévues de Codex et mener à des actions sur la machine hôte depuis un dépôt non fiable. Heapjack visait l’assistant node repl, configuré globalement, et un tas mémoire V8 partagé ; Overpatch exploitait les permissions de apply patch, calculées à partir de chemin...
Publié parModifié avec GPT-5.6 TerraImages générées avec GPT Image 2
Réponse de recherche

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
Le sandbox de Codex devait limiter ce qu’un agent de programmation pouvait lire, modifier et exécuter. Les vulnérabilités Heapjack et Overpatch, signalées par Accomplish AI et désormais corrigées, ont montré qu’il restait possible de franchir cette frontière lorsqu’un composant de confiance partageait un secret avec du code non fiable ou tirait ses privilèges d’une entrée contrôlée par l’attaquant. 4
8
Heapjack concernait l’intégration node_repl installée par Codex Desktop. D’après les chercheurs, l’application plaçait sa configuration de serveur MCP dans le fichier global ~/.codex/config.toml. Des sessions Codex CLI utilisant cette configuration partagée pouvaient donc également hériter de cet assistant. 8
9
La rupture d’isolation se situait dans l’environnement JavaScript de l’assistant :
Or, le processus parent fonctionnait hors du sandbox. Cela pouvait donc déboucher sur des actions au niveau de l’hôte, y compris l’exécution de commandes, même lorsque Codex était censé être en mode lecture seule. Le problème n’était pas l’exécution de JavaScript en elle-même : le secret distinguant les opérations de confiance des opérations non fiables était accessible dans la mémoire partagée. 8
15
Overpatch affectait apply_patch dans Codex CLI, en mode d’écriture dans l’espace de travail. L’outil était censé borner les modifications au répertoire du projet, mais sa logique d’autorisation attribuait des droits d’écriture à partir des répertoires parents indiqués dans le patch lui-même. 4
Les chemins du patch devenaient ainsi des données sensibles. Accomplish a présenté une preuve de concept où la simple mention d’un chemin tel que /tmp, pourtant sans effet utile direct, étendait l’autorisation jusqu’à la racine du système de fichiers. Une autre modification du patch pouvait alors suivre un lien symbolique contrôlé dans le dépôt et modifier un fichier extérieur à l’espace de travail, notamment un fichier de démarrage du shell dans le répertoire personnel de l’utilisateur. 4
9
L’effet pouvait être différé, mais sérieux : du code ajouté à un fichier comme .zshrc pouvait s’exécuter hors sandbox lors de la prochaine ouverture d’un terminal par le développeur. L’action sur l’hôte ainsi obtenue ne nécessitait pas la demande d’approbation normalement attendue. 4
7
Heapjack et Overpatch reposaient sur des mécanismes différents, mais révèlent le même défaut de conception : le mécanisme chargé de faire respecter la frontière accordait sa confiance à des données accessibles depuis le côté non fiable.
| Vulnérabilité | Élément considéré à tort comme fiable | Pourquoi la frontière échouait |
|---|---|---|
| Heapjack | Un jeton d’autorisation dans un tas V8 partagé | Le code non fiable pouvait récupérer le secret servant à identifier les requêtes autorisées. |
| Overpatch | Des chemins fournis dans un patch contrôlé par l’agent | Ces chemins influençaient l’étendue des droits d’écriture au lieu de décrire seulement la modification demandée. |
Il s’agit d’un problème de député confus : un assistant ou un programme d’orchestration plus privilégié agit au nom d’une entrée moins fiable, sans valider correctement son autorité ou sa cible finale. Isoler le shell de l’agent ne suffit donc pas si les assistants, jetons, fichiers de configuration et sous-processus d’orchestration restent privilégiés ou peuvent être influencés par le contenu du dépôt.
D’autres vulnérabilités de sandbox d’agents de programmation, signalées en 2026, étaient techniquement distinctes mais similaires sur le plan architectural. Les rapports Beltdown et Beltdown2 d’Accomplish décrivaient des shells d’agent isolés alors que des commandes Git internes, lancées par le programme d’orchestration, restaient hors sandbox. La configuration .git/config d’un dépôt pouvait employer core.fsmonitor afin que Git exécute un assistant configuré au moment d’inspecter l’arbre de travail. 17
18
Manifold Security désigne cette famille sous le nom de GitSpawn : une configuration Git contrôlée par le dépôt pouvait provoquer l’exécution de code choisi par l’attaquant dès qu’un agent inspectait le projet, potentiellement avant une décision de confiance ou une approbation réellement significative. 20
21
La leçon n’est pas que chaque dépôt est forcément dangereux dans tous les scénarios. Elle est que le dépôt doit être traité comme une entrée potentiellement active : métadonnées Git, liens symboliques, chemins de patch, fichiers de configuration, hooks et programmes auxiliaires peuvent tous modifier le comportement de l’agent ou de son environnement d’orchestration. La frontière de confiance d’un produit d’agent englobe ces chemins, pas seulement l’outil de commande visible.
Les versions minimales rapportées comme corrigées sont les suivantes :
Accomplish indique avoir signalé les deux problèmes à OpenAI le 12 août 2026 et que les correctifs sont arrivés dans les huit jours. 9
.git ; un clonage Git classique ne transfère normalement pas le fichier .git/config local du dépôt distant. En pratique, l’installation des correctifs est indispensable, mais un sandbox interne au processus ne doit pas constituer l’unique rempart entre un dépôt inconnu et le poste de travail d’un développeur.
Studio Global AI
Cette page comprend une réponse basée sur la source que vous pouvez continuer dans Studio Global.
Heapjack et Overpatch pouvaient contourner les limites prévues de Codex et mener à des actions sur la machine hôte depuis un dépôt non fiable.
Heapjack et Overpatch pouvaient contourner les limites prévues de Codex et mener à des actions sur la machine hôte depuis un dépôt non fiable. Heapjack visait l’assistant node repl, configuré globalement, et un tas mémoire V8 partagé ; Overpatch exploitait les permissions de apply patch, calculées à partir de chemins contrôlés dans un patch.
Des failles comparables découvertes en 2026 autour de la configuration Git illustrent le même problème : un chemin d’orchestration non sandboxé accepte des données contrôlées par le dépôt.
Heapjack et Overpatch pouvaient contourner les limites prévues de Codex et mener à des actions sur la machine hôte depuis un dépôt non fiable. Heapjack visait l’assistant node repl, configuré globalement, et un tas mémoire V8 partagé ; Overpatch exploitait les permissions de apply patch, calculées à partir de chemin...
Publié parModifié avec GPT-5.6 TerraImages générées avec GPT Image 2
Réponse de recherche

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
Le sandbox de Codex devait limiter ce qu’un agent de programmation pouvait lire, modifier et exécuter. Les vulnérabilités Heapjack et Overpatch, signalées par Accomplish AI et désormais corrigées, ont montré qu’il restait possible de franchir cette frontière lorsqu’un composant de confiance partageait un secret avec du code non fiable ou tirait ses privilèges d’une entrée contrôlée par l’attaquant. 4
8
Heapjack concernait l’intégration node_repl installée par Codex Desktop. D’après les chercheurs, l’application plaçait sa configuration de serveur MCP dans le fichier global ~/.codex/config.toml. Des sessions Codex CLI utilisant cette configuration partagée pouvaient donc également hériter de cet assistant. 8
9
La rupture d’isolation se situait dans l’environnement JavaScript de l’assistant :
Or, le processus parent fonctionnait hors du sandbox. Cela pouvait donc déboucher sur des actions au niveau de l’hôte, y compris l’exécution de commandes, même lorsque Codex était censé être en mode lecture seule. Le problème n’était pas l’exécution de JavaScript en elle-même : le secret distinguant les opérations de confiance des opérations non fiables était accessible dans la mémoire partagée. 8
15
Overpatch affectait apply_patch dans Codex CLI, en mode d’écriture dans l’espace de travail. L’outil était censé borner les modifications au répertoire du projet, mais sa logique d’autorisation attribuait des droits d’écriture à partir des répertoires parents indiqués dans le patch lui-même. 4
Les chemins du patch devenaient ainsi des données sensibles. Accomplish a présenté une preuve de concept où la simple mention d’un chemin tel que /tmp, pourtant sans effet utile direct, étendait l’autorisation jusqu’à la racine du système de fichiers. Une autre modification du patch pouvait alors suivre un lien symbolique contrôlé dans le dépôt et modifier un fichier extérieur à l’espace de travail, notamment un fichier de démarrage du shell dans le répertoire personnel de l’utilisateur. 4
9
L’effet pouvait être différé, mais sérieux : du code ajouté à un fichier comme .zshrc pouvait s’exécuter hors sandbox lors de la prochaine ouverture d’un terminal par le développeur. L’action sur l’hôte ainsi obtenue ne nécessitait pas la demande d’approbation normalement attendue. 4
7
Heapjack et Overpatch reposaient sur des mécanismes différents, mais révèlent le même défaut de conception : le mécanisme chargé de faire respecter la frontière accordait sa confiance à des données accessibles depuis le côté non fiable.
| Vulnérabilité | Élément considéré à tort comme fiable | Pourquoi la frontière échouait |
|---|---|---|
| Heapjack | Un jeton d’autorisation dans un tas V8 partagé | Le code non fiable pouvait récupérer le secret servant à identifier les requêtes autorisées. |
| Overpatch | Des chemins fournis dans un patch contrôlé par l’agent | Ces chemins influençaient l’étendue des droits d’écriture au lieu de décrire seulement la modification demandée. |
Il s’agit d’un problème de député confus : un assistant ou un programme d’orchestration plus privilégié agit au nom d’une entrée moins fiable, sans valider correctement son autorité ou sa cible finale. Isoler le shell de l’agent ne suffit donc pas si les assistants, jetons, fichiers de configuration et sous-processus d’orchestration restent privilégiés ou peuvent être influencés par le contenu du dépôt.
D’autres vulnérabilités de sandbox d’agents de programmation, signalées en 2026, étaient techniquement distinctes mais similaires sur le plan architectural. Les rapports Beltdown et Beltdown2 d’Accomplish décrivaient des shells d’agent isolés alors que des commandes Git internes, lancées par le programme d’orchestration, restaient hors sandbox. La configuration .git/config d’un dépôt pouvait employer core.fsmonitor afin que Git exécute un assistant configuré au moment d’inspecter l’arbre de travail. 17
18
Manifold Security désigne cette famille sous le nom de GitSpawn : une configuration Git contrôlée par le dépôt pouvait provoquer l’exécution de code choisi par l’attaquant dès qu’un agent inspectait le projet, potentiellement avant une décision de confiance ou une approbation réellement significative. 20
21
La leçon n’est pas que chaque dépôt est forcément dangereux dans tous les scénarios. Elle est que le dépôt doit être traité comme une entrée potentiellement active : métadonnées Git, liens symboliques, chemins de patch, fichiers de configuration, hooks et programmes auxiliaires peuvent tous modifier le comportement de l’agent ou de son environnement d’orchestration. La frontière de confiance d’un produit d’agent englobe ces chemins, pas seulement l’outil de commande visible.
Les versions minimales rapportées comme corrigées sont les suivantes :
Accomplish indique avoir signalé les deux problèmes à OpenAI le 12 août 2026 et que les correctifs sont arrivés dans les huit jours. 9
.git ; un clonage Git classique ne transfère normalement pas le fichier .git/config local du dépôt distant. En pratique, l’installation des correctifs est indispensable, mais un sandbox interne au processus ne doit pas constituer l’unique rempart entre un dépôt inconnu et le poste de travail d’un développeur.
Studio Global AI
Cette page comprend une réponse basée sur la source que vous pouvez continuer dans Studio Global.
Heapjack et Overpatch pouvaient contourner les limites prévues de Codex et mener à des actions sur la machine hôte depuis un dépôt non fiable.
Heapjack et Overpatch pouvaient contourner les limites prévues de Codex et mener à des actions sur la machine hôte depuis un dépôt non fiable. Heapjack visait l’assistant node repl, configuré globalement, et un tas mémoire V8 partagé ; Overpatch exploitait les permissions de apply patch, calculées à partir de chemins contrôlés dans un patch.
Des failles comparables découvertes en 2026 autour de la configuration Git illustrent le même problème : un chemin d’orchestration non sandboxé accepte des données contrôlées par le dépôt.