Security

Peneliti Berhasil Keluar dari Sandbox OpenAI Codex dan Menjalankan Perintah di Host

Peneliti keamanan menemukan dua metode untuk keluar dari sandbox OpenAI Codex, salah satunya memungkinkan penyerang menjalankan perintah pada komputer developer dari mode sandbox paling ketat tanpa memerlukan persetujuan pengguna maupun menampilkan aktivitas di layar.

Kedua kerentanan tersebut dilaporkan kepada OpenAI pada 12 Agustus 2026 dan telah diperbaiki dalam waktu delapan hari, menurut Oren Yomtov dari Accomplish AI.

Kerentanan yang lebih serius diberi nama Heapjack. Teknik ini dapat mengubah aktivitas yang terlihat sederhana menjadi remote code execution pada komputer korban. Skenarionya cukup unik: pengguna membuka repository milik orang lain di Codex dan meminta AI menjawab pertanyaan mengenai kode di dalamnya. Jika repository tersebut dibuat oleh penyerang, pemiliknya berpotensi memperoleh kemampuan menjalankan perintah di luar sandbox pada komputer pengguna.

Codex merupakan coding agent dari OpenAI yang tersedia sebagai command-line tool maupun aplikasi desktop. Seperti coding agent lainnya, Codex menjalankan tindakan model di dalam sandbox untuk mencegah kode yang tidak dipercaya mengakses sistem secara lebih luas.

Kedua kerentanan yang ditemukan memanfaatkan kelemahan pada batas antara lingkungan yang dipercaya dan tidak dipercaya tersebut.

Heapjack Membobol Sandbox dari Dalam

Teknik pertama, Heapjack, menargetkan komponen bernama node_repl yang ditulis oleh Codex Desktop ke file konfigurasi global ~/.codex/config.toml saat instalasi.

Komponen tersebut aktif secara default dan tidak menyediakan opsi opt-in maupun pengaturan untuk menonaktifkannya. Karena berada di konfigurasi bersama, pengguna Codex CLI juga dapat mewarisi tool tersebut tanpa harus memberikan persetujuan tambahan.

node_repl menjalankan satu proses Node.js yang memiliki dua konteks JavaScript berbeda.

Satu konteks digunakan untuk menjalankan kode yang dipercaya dan berisi kode milik OpenAI. Konteks lainnya digunakan untuk menjalankan kode yang tidak dipercaya dari agent.

Konteks yang dipercaya membuktikan statusnya menggunakan sebuah token acak yang dibuat baru pada setiap eksekusi.

Masalahnya, kedua konteks tersebut tetap berada di dalam satu proses Node.js dan berbagi memory heap yang sama.

Akibatnya, token yang seharusnya berfungsi sebagai rahasia pemisah antara kode terpercaya dan tidak terpercaya ternyata dapat dibaca dari sisi yang tidak dipercaya.

Token Rahasia Ditemukan dari Memory Heap

Dalam proof of concept, kode yang tidak dipercaya mengambil snapshot memory heap menggunakan:

v8.getHeapSnapshot()

Peneliti kemudian mencari string yang memiliki format seperti UUID, karena token autentikasi yang digunakan komponen tersebut memiliki bentuk serupa.

Ketika token yang salah digunakan, sistem mengembalikan pesan “not authorized”.

Namun, ketika token yang benar digunakan bersama argumen yang salah, sistem memberikan error validasi yang berbeda.

Perbedaan respons tersebut memungkinkan peneliti mengetahui bahwa token yang ditemukan memang valid.

Setelah memperoleh token, kode yang tidak dipercaya dapat menulis request miliknya sendiri ke pipe yang digunakan konteks terpercaya untuk berkomunikasi dengan proses parent native yang berjalan di luar sandbox.

Proses parent kemudian memeriksa token tersebut. Karena token valid, request dianggap berasal dari konteks yang dipercaya dan perintah dijalankan.

Bahkan Mode Read-Only Dapat Ditembus

Dalam demonstrasi, peneliti menggunakan akses tersebut untuk menjalankan perintah open pada sistem.

Perintah tersebut dapat membuka aplikasi di luar process tree Codex, sehingga tindakan tidak lagi dibatasi oleh lingkungan sandbox Codex.

Akses tersebut juga berpotensi menjangkau Unix socket lain. Salah satu target yang disebut paling menarik adalah Docker daemon socket, yang dapat memberikan kemampuan sangat luas terhadap sistem yang menjalankan Docker.

Selain itu, akses tersebut dapat menjangkau tool yang dapat mengubah konfigurasi global.

Yang membuat Heapjack semakin serius adalah teknik tersebut dapat dijalankan ketika Codex berada dalam mode read-only, yaitu mode sandbox paling ketat.

Dalam mode tersebut, agent seharusnya tidak memiliki kemampuan menulis ke sistem.

Overpatch Memanfaatkan Tool Patch Codex

Kerentanan kedua diberi nama Overpatch dan ditemukan pada Codex CLI open-source.

Dalam mode workspace-write, agent seharusnya hanya dapat menulis file di dalam folder project.

Perintah shell yang mencoba menulis langsung ke home directory akan ditolak oleh sandbox.

Namun, peneliti menemukan bahwa tool apply_patch milik Codex dapat digunakan untuk melewati pembatasan tersebut.

Masalahnya terletak pada cara tool menentukan izin berdasarkan path yang diberikan di dalam patch.

Tool tersebut memberikan izin write terhadap parent directory dari setiap path yang disebut dalam patch.

Jika sebuah patch menyebut /tmp, misalnya, mekanisme tersebut dapat memberikan akses write yang jauh lebih luas daripada yang seharusnya.

Eksploitasi Overpatch memanfaatkan dua perubahan dalam satu patch.

Perubahan pertama menyebut /tmp dan sebenarnya tidak melakukan perubahan yang berguna. Tujuannya adalah memperluas izin write yang diberikan oleh mekanisme apply_patch.

Perubahan kedua kemudian menggunakan symlink untuk mengarahkan penulisan menuju file .zshrc di home directory pengguna.

Jika perubahan pertama dihilangkan, penulisan tersebut akan ditolak oleh sandbox.

Namun, ketika perubahan tersebut disertakan, file .zshrc dapat dimodifikasi.

Akibatnya, ketika developer membuka terminal berikutnya, baris yang ditambahkan oleh penyerang dapat dijalankan di luar sandbox.

Dengan kata lain, agent tidak perlu langsung menjalankan perintah berbahaya di luar sandbox. Cukup menulis konfigurasi yang kemudian akan dijalankan oleh shell yang dipercaya.

Kedua Kerentanan Memiliki Kesalahan yang Sama

Meskipun Heapjack dan Overpatch menggunakan teknik berbeda, keduanya memiliki pola kelemahan yang serupa.

Pada Overpatch, mekanisme enforcement menentukan sendiri izin yang diberikan berdasarkan input yang dapat dikendalikan oleh pihak yang tidak dipercaya.

Sementara pada Heapjack, rahasia yang seharusnya memisahkan kode terpercaya dan tidak terpercaya disimpan di memory heap yang juga dapat diakses oleh kode tidak terpercaya.

Dalam kedua kasus tersebut, komponen yang seharusnya menjaga sandbox justru dapat dimanipulasi dari dalam sandbox.

Dengan kata lain, batas keamanan berada pada komponen yang sama dengan lingkungan yang sedang dibatasi.

Bukan Pertama Kalinya Sandbox AI Agent Ditembus

Jenis kelemahan seperti ini bukan hal baru dalam ekosistem coding agent.

Pada Juli 2026, peneliti Pillar Security sebelumnya mendemonstrasikan teknik serupa terhadap Cursor, Codex, Gemini CLI, dan Google’s Antigravity.

Dalam kasus tersebut, agent yang tetap berada di dalam sandbox dapat dimanfaatkan untuk menulis file yang kemudian dijalankan oleh tool terpercaya di luar sandbox.

Hal ini menunjukkan adanya tantangan arsitektur yang lebih luas ketika AI coding agent diberikan kemampuan untuk menjalankan kode sekaligus berinteraksi dengan tool yang memiliki hak akses lebih tinggi.

OpenAI Telah Memperbaiki Kedua Kerentanan

Menurut Accomplish, OpenAI telah memperbaiki Heapjack pada Codex Desktop build 26.818.21641.

Sementara itu, Overpatch telah diperbaiki pada Codex CLI 0.149.0.

Kedua kerentanan tersebut dilaporkan kepada OpenAI pada 12 Agustus dan disebut telah diperbaiki dalam waktu delapan hari.

Pengguna Codex disarankan memperbarui aplikasi desktop maupun CLI ke versi tersebut atau versi yang lebih baru.

Kasus ini juga menjadi pengingat bahwa sandbox tidak selalu menjadi jaminan mutlak ketika AI agent dapat berinteraksi dengan komponen sistem yang memiliki hak istimewa.

Ketika kode tidak terpercaya dapat memengaruhi mekanisme autentikasi, konfigurasi, memory, atau tool yang berada di luar sandbox, batas keamanan tersebut dapat runtuh dari dalam.

Sumber: Accomplish AI

Leave a Reply

Your email address will not be published. Required fields are marked *


Back to top button