· kaynak dev.to (home feed)
Araştırmacılar OpenAI Codex sandbox'ından Overpatch ve Heapjack teknikleriyle kaçtı
OpenAI Codex'te doğrulanmış iki sandbox kaçışı, güvenilmeyen repository'lerin workspace dışına yazmasına ve salt okunur modda bile host komutları çalıştırmasına olanak tanıyor. Her iki açık da sekiz gün içinde yamalandı.

Güvenlik araştırmacıları, OpenAI Codex'in sandbox'ından ikisi ayrı iki kaçış gösterdi; bunlardan biri aracın en katı salt okunur yapılandırmasında bile çalışıyor. Accomplish AI tarafından 15 Eylül 2026'da yayınlanan ve "Escaping the OpenAI Codex sandbox, twice" başlığını taşıyan yazı, araştırmacıların Overpatch ve Heapjack olarak adlandırdığı teknikleri ele alıyor. dev.to üzerindeki bir özet, her iki sorunun da ifşadan sonraki sekiz gün içinde düzeltildiğini ve gerçek dünyada istismar gözlemlenmediğini bildiriyor.
Overpatch: apply_patch üzerinden yazma izinlerini genişletmek
Overpatch, workspace-write modunda çalışan Codex CLI'yi hedef alıyor; bu modda sıradan shell komutlarının kullanıcı ana dizini gibi konumlara yazması engelleniyor.
Araştırma yapıldığı sırada apply_patch aracı, yazabileceği yolları, bir patch içinde adı geçen her yolun üst dizinine bakarak belirliyordu. Araştırmacılar bunu, /tmp'yi sanki bir dosyaymış gibi adlandıran hiçbir işlem yapmayan (no-op) bir patch girdisi ekleyerek istismar etti. Yazma işlemi /tmp bir dizin olduğu için başarısız oldu, ancak dev.to'daki araştırma özetine göre üst dizini olan / izinli yazma kapsamına yine de eklendi.
Kök dizin artık izinli olduğundan, aynı patch workspace içine yerleştirilmiş sembolik bir bağlantı aracılığıyla $HOME/.zshrc dosyasına bir satır ekledi. Patch işlenirken hiçbir uyarı görünmüyor ve enjekte edilen komut, geliştirici bir dahaki sefere terminal açtığında host üzerinde çalışıyor.
Heapjack: paylaşılan V8 heap'inden güven token'ını kurtarmak
Heapjack ikisinin daha çarpıcı olanı, çünkü Codex salt okunur moddayken, onay istemi tetiklemeden çalışıyor.
Codex Desktop, global ~/.codex/config.toml dosyasına node_repl girdisi ekledi ve bu, Codex CLI tarafından da kullanılabilir hale geldi. Bu bileşen, sandbox içinde aynı isolate ve heap'i paylaşan, biri güvenli biri güvenilmeyen iki V8 VM bağlamı içeren bir Node.js süreci başlatıyor.
Güvenli bağlam, sandbox dışındaki yerel Rust üst sürecine gönderdiği isteklere yeni üretilmiş rastgele bir token ekliyor. Araştırmacıların güvenilmeyen JavaScript'i v8.getHeapSnapshot() ile bir heap anlık görüntüsü aldı ve UUID biçimindeki dizgileri aday token olarak test etti. Yanlış token'lar yetkilendirme hatası verirken, geçerli bir token geçersiz argümanlarla birlikte doğrulama hatası verdiği için, yanıtlar arasındaki fark gerçek token'ı belirlemek için bir oracle görevi gördü.
Kurtarıldığında token, sandbox içindeki kodun güvenli bağlamın kullandığı aynı standart çıktı borusuna JSON Lines istekleri yazmasını sağladı ve yerel üst süreç bunları meşru olarak işledi. Kavram kanıtı (proof of concept), sandbox dışında macOS open komutunu çalıştırdı. Araştırmacılar token'ın ayrıca Unix socket'lerine, bir Docker daemon socket'i dahil, bağlanmak ve global Codex yapılandırmasını düzenleyen aracı çağırmak için de kullanılabileceğini söyledi. Başarılı bir Docker host ele geçirmesi bildirilmedi.
Başarının sağladıkları ve kontrol edilmesi gerekenler
Her iki yol da bir geliştiricinin açtığı güvenilmeyen bir repository'den başlıyor; repository içeriği agent'ın araç kullanımını yönlendiriyor. Heapjack'te, kötü niyetli bir repository hakkında sadece bir soru sormak bile host tarafında uygulamalar başlatabiliyor.
Başarılı bir kaçış, host'un barındırdığı her şeye kapıyı açıyor: ortama bağlı olarak geliştirici kimlik bilgileri, kaynak kodu, imzalama anahtarları ve cloud oturumları. Savunmacıların bakabileceği göstergeler arasında global yapılandırmadaki node_repl ayarları, workspace'ten ana dizine uzanan symlink'ler, beklenmeyen .zshrc değişiklikleri ve Codex ile ilgili süreçlerden gelen Unix socket bağlantıları yer alıyor.
Yamalar ve ek savunmalar
Özete göre Codex CLI 0.149.0 veya üzeri sürüme ve Codex Desktop 26.818.21641 veya üzeri sürüme güncelleme her iki sorunu da çözüyor. Accomplish AI ayrıca agent'ı ve alt süreçlerini host'tan ayrı bir sanal makine sınırı içinde çalıştırıyor; böylece host kimlik bilgileri ve Docker socket'leri içeri aktarılmıyor. Bu, katmanlı savunmadır, yamalamanın yerine geçmez.
Neden önemli
Agentic kodlama araçları, sandbox'ı temel güvenlik sözü olarak görüyor: salt okunur modun amacı, host üzerinde hiçbir şeyin değişememesidir. Bu doğrulanmış kaçışlar, sözün patch yollarına güvenen izin mantığından paylaşılan bir heap sızak bellek izolasyonuna kadar incelikli yollarla başarısız olabileceğini gösteriyor. Geliştiriciler agent'ları rutin olarak tanımadıkları repository'lere yönlendirdikçe, kötü niyetli bir repo geliştiricinin makinesine karşı doğrudan bir saldırı yüzeyi haline geliyor ve satıcılar da kullanıcılar da tek bir sandbox sınırına güvenmek yerine katmanlı savunmalara ihtiyaç duyuyor.
- #openai
- #security
- #ai-agents
- #sandbox-escape
- #codex