OpenAI patcht zwei von Forschern entdeckte Codex-Sandbox-Ausbrüche

OpenAI patcht zwei von Forschern entdeckte Codex-Sandbox-Ausbrüche

Sicherheitsforscher haben zwei Wege gefunden, aus der OpenAI-Codex-Sandbox auszubrechen, darunter einen, der im schreibgeschützten Modus Befehle auf dem Rechner eines Entwicklers ausführt.

Zwei neu offengelegte Techniken zum Ausbruch aus der Codex-Sandbox zeigen, wie ein KI-Coding-Assistent aus dem geschützten Bereich herausgedrängt werden kann, in dem er eigentlich bleiben soll – und beide wurden innerhalb von acht Tagen nach der Meldung behoben. Die Ergebnisse stammen von Oren Yomtov von Accomplish AI, der die Schwachstellen am 12. August an OpenAI meldete. Codex ist OpenAIs Coding-Agent, der als Kommandozeilenwerkzeug und als Desktop-Anwendung angeboten wird, und wie ähnliche Agenten anderer Anbieter ist er so gebaut, dass er die Aktionen des Modells in einer Sandbox ausführt, einem abgeschotteten Bereich, der verhindert, dass nicht vertrauenswürdiger Code den Rest des Rechners berührt. Beide Ausbrüche funktionieren, indem sie diese Grenze von innen heraus überwinden, statt von außen einzudringen.

Die schwerwiegendere Schwachstelle, die die Forscher Heapjack nennen, verwandelt eine gewöhnliche Aktion in Remote-Code-Ausführung, was bedeutet, dass Angreifercode auf dem Rechner des Opfers selbst läuft. Der Weg ist kurz: Öffnen Sie das Code-Repository eines anderen in Codex, stellen Sie dem Agenten eine Frage zu diesem Code, und die Person, die das Repository geschrieben hat, erhält unsandboxed Befehlsausführung auf Ihrem Rechner. Laut Yomtovs Bericht zielt die Technik auf eine Komponente namens node_repl ab, die Codex Desktop bei der Installation in die globale Konfigurationsdatei unter ~/.codex/config.toml schreibt. Es gibt keine Opt-in-Möglichkeit und keine Einstellung, um sie abzuschalten, und weil der Eintrag in der gemeinsamen Konfiguration liegt, erben Nutzer des reinen Codex-Kommandozeilenwerkzeugs dieselbe Komponente, ohne jemals gefragt zu werden.

Der Grund, warum der Ausbruch funktioniert, ist eine Designentscheidung innerhalb von node_repl. Es führt einen einzelnen Node.js-Prozess aus, eine Laufzeitumgebung für JavaScript-Programme, die zwei getrennte JavaScript-Ausführungskontexte enthält. Einer davon ist vertrauenswürdig und enthält OpenAIs eigenen Code, der andere ist nicht vertrauenswürdig und führt den Code des Agenten aus. Die vertrauenswürdige Seite weist sich als vertrauenswürdig aus, indem sie ein zufälliges Token vorlegt, das bei jedem Lauf neu erzeugt wird. Das Problem ist, dass beide Kontexte im selben Prozess sitzen und denselben Speicher-Heap teilen, sodass dieses geheime Token einfach als Zeichenkette im Speicher liegt, wo die nicht vertrauenswürdige Seite es lesen kann.

Der nicht vertrauenswürdige Code erstellt mit einer Funktion namens v8.getHeapSnapshot() einen Schnappschuss des Heaps und probiert dann jede Zeichenkette aus, die wie eine universell eindeutige Kennung (UUID) aussieht. Eine falsche Vermutung kommt mit einer Meldung zurück, die besagt, dass keine Autorisierung vorliegt. Ein korrektes Token, das mit einem absichtlich fehlerhaften Argument gesendet wird, erzeugt einen echten Validierungsfehler, der dem Angreifer sagt, dass das Token das richtige ist. Mit dem Token in der Hand schreibt der nicht vertrauenswürdige Code seine eigene Anfrage auf dieselbe Pipe, die der vertrauenswürdige Kontext verwendet, um mit einem nativen, nicht gesandboxten Elternprozess zu sprechen. Der Elternprozess prüft das Token, sieht ein gültiges und erledigt die Arbeit. Der Proof of Concept verwendete den Systembefehl 'open', um eine Anwendung völlig außerhalb des Prozessbaums von Codex zu starten. Der Bericht merkt an, dass derselbe Zugriff jeden Unix-Socket erreicht, wobei ein Docker-Daemon-Socket das offensichtliche Ziel ist, sowie ein Werkzeug zum Bearbeiten der globalen Konfigurationsdatei. All dies läuft im schreibgeschützten Modus, dem strengsten Sandbox-Modus, in dem der Agent eigentlich gar nichts schreiben können soll.

Die zweite Schwachstelle, Overpatch, sitzt im Open-Source-Codex-CLI. Im Workspace-Write-Modus darf der Agent nur innerhalb des Projektordners schreiben, und ein Shell-Befehl, der auf das Home-Verzeichnis zielt, wird abgelehnt. Die Forscher brachten Codex' eigenes Patch-Werkzeug apply_patch dazu, trotzdem dorthin zu schreiben. Das Werkzeug gewährt Schreibzugriff auf den übergeordneten Ordner jedes in einem Patch genannten Pfads, sodass die Nennung von '/tmp' ausreicht, um Schreibzugriff auf das Wurzelverzeichnis der Festplatte zu gewähren. Der funktionierende Exploit verwendet einen Patch mit zwei Änderungen: eine, die '/tmp' nennt und nichts Nützliches tut, außer die Berechtigung zu erweitern, und eine, die über einen Symlink ins Home-Verzeichnis eine Zeile an '.zshrc' anhängt. Entfernt man die erste Änderung, wird das Schreiben abgelehnt. Behält man sie, führt das nächste Terminal, das der Entwickler öffnet, die Zeile des Angreifers ohne Sandbox aus.

Beide Fehler haben dieselbe Form: Der Durchsetzungsmechanismus lebte in genau dem Ding, das er eigentlich durchsetzen sollte. apply_patch ermittelte seine eigenen Berechtigungen aus vom Angreifer gelieferten Eingaben, und node_repl bewahrte das Geheimnis, das vertrauenswürdigen von nicht vertrauenswürdigem Code trennt, im selben Speicher wie den nicht vertrauenswürdigen Code auf. In beiden Fällen wurde der Sandbox von innen gesagt, etwas durchzulassen.

Diese Art von Fehler ist nicht neu. Im Juli 2026 demonstrierten Forscher von Pillar Security dieselbe Idee bei Cursor, Codex, Gemini CLI und Googles Antigravity und zeigten einen Agenten, der in seiner Sandbox bleibt und eine Datei schreibt, die ein vertrauenswürdiges Werkzeug außerhalb der Sandbox später ausführt. Als Reaktion auf Yomtovs Beitrag auf X schrieb ein Kommentator, dass „V8-Kontexte Globals isolieren, nicht den Speicher, die Sandbox also wirklich ein Versprechen war, dem der Heap nie zugestimmt hat.“ Ein anderer beschrieb die Vertrauensgrenze als Zimmerteiler. Dass die node_repl-Komponente standardmäßig aktiviert ist, zog ebenfalls Kritik auf sich, und ein Kommentator fragte, warum ein privilegiertes Token überhaupt von nicht vertrauenswürdigem JavaScript aus erreichbar war.

OpenAI hat Heapjack in Codex Desktop Build 26.818.21641 und Overpatch in Codex CLI 0.149.0 behoben, so Accomplish. Nutzer sollten auf diese oder spätere Versionen aktualisieren. Yomtov lobte OpenAI dafür, beide Probleme innerhalb von acht Tagen nach seiner Meldung gelöst zu haben. BleepingComputer gab an, vor der Veröffentlichung eine Stellungnahme von OpenAI angefragt zu haben.

Für Teams, die Unterstützung bei der Überprüfung wünschen, wie Entwickler- und Cloud-Tools in ihrer Organisation konfiguriert sind, bietet AEU-I sicherheitsorientierte IT-, Infrastruktur- und Beratungsdienste an.

So schützen Sie sich

  1. Aktualisieren Sie die Codex-Desktop-App auf Build 26.818.21641 oder neuer und das Codex-Kommandozeilenwerkzeug auf Version 0.149.0 oder neuer, und schalten Sie automatische Updates ein, damit künftige Korrekturen ankommen, ohne dass Sie sel
  2. Seien Sie vorsichtig, wenn Sie Code-Repositories von Ihnen unbekannten Personen in einem KI-Coding-Assistenten öffnen, denn diese Geschichte zeigt, dass es ausreichte, ein solches Projekt einfach zu öffnen und danach zu fragen, damit sein A
  3. Halten Sie KI-Coding-Assistenten von dem Computer und dem Konto fern, auf dem Ihre Passwörter, Kundendaten oder Zahlungsdetails liegen, damit ein Fehler wie dieser weniger erreichen kann.
  4. Bitten Sie Ihr IT-Team oder Ihren Technologieanbieter zu bestätigen, dass die in Ihrem Unternehmen verwendeten Entwicklerwerkzeuge auf dem neuesten Stand sind, und dies schriftlich mitzuteilen.
  5. Halten Sie eine aktuelle Sicherung Ihrer Website und wichtiger Dateien bereit, die Sie wiederherstellen können, falls auf einem Arbeitsrechner ohne Ihr Wissen etwas geändert wird.

Begriffe Erklärt

  • sandbox Ein abgeschotteter Bereich innerhalb eines Computers, in dem ein Programm laufen darf, damit alles Schädliche, das es tut, vom Rest des Rechners fernbleibt.
  • remote code execution Eine Situation, in der ein Angreifer es schafft, seine eigenen Befehle auf dem Computer eines anderen ausführen zu lassen.
  • Node.js Eine weit verbreitete Software, mit der Programme, die in der Sprache JavaScript geschrieben sind, außerhalb eines Webbrowsers laufen können.
  • token Eine lange zufällige Zeichenkette, die wie ein Passwort verwendet wird, damit ein Teil eines Programms einem anderen Teil beweisen kann, dass er handeln darf.
  • Unix socket Ein privater Verbindungspunkt auf einem Computer, den Programme nutzen, um sich gegenseitig Anweisungen zu senden, zum Beispiel um andere Software zu steuern, die auf demselben Rechner läuft.
  • symlink Eine Verknüpfungsdatei, die auf eine andere Datei oder einen anderen Ordner an einer anderen Stelle des Computers verweist, sodass das Öffnen der Verknüpfung das echte Objekt öffnet.

Verwandte AEU-Dienste

  • AEU DNS Verschlüsselter DNS-Resolver