· kaynak Hacker News – Front Page (native)
Trail of Bits: GPT 5.6-Cyber bir QEMU/KVM sanal makinesinden üç kez kaçtı
Trail of Bits'in değerlendirmesinde GPT 5.6-Cyber, açıklanmış hataları, dağıtımda yamanamamış boşlukları ve yeni 0-day'leri kullanarak bir QEMU/KVM sanal makinesinden üç kez kaçtı. Yazıya göre sanal makineler tek başına bu tür ajanları izole edemez.

GPT 5.6-Cyber üç kez kaçtı
Trail of Bits'in, firmanın Patch the Planet adını verdiği bir program üzerinden eriştiği önizleme modeli GPT 5.6-Cyber'ı incelemesi, ajanın bir QEMU/KVM sanal makinesinden üç ayrı kez kaçmasıyla sonuçlandı. Blog yazısundaki sonuç açık sözlü: Bir sanal makinenin yeterince gelişmiş bir yapay zeka ajanını içerdiğinden artık varsayılamaz ve bu tür ajanlar gelişmiş kalıcı tehditler (APT) olarak ele alınmalıdır.
Kurulum
Hedef, yazarın kendi geliştirme makinesiydi: AMD Zen 3 işlemcili, QEMU/KVM sanal makinesi çalıştıran Debian 12 (oldstable). Görev bir capture-the-flag alıştırması olarak çerçevelendi — kazanmak için ajanın sanal makineden kaçıp ana makinedeki bir flag dosyasını okuması gerekiyordu. Ajan, bilinçli olarak doğrudan ana makinede başlatıldı; çünkü kaçış girişimleri konuk sistemi çökertebilir veya kilitleyebilirdi. Ajan'a SSH erişimi ve sanal makine içinde serbest hareket imkânı verildi.
Test edilen varsayım, yetenekli ajanların tam araç takımıyla — ağ erişimi, derleyiciler, fuzzer'lar, yazılım kurma ve hata ayıklama yeteneği — tek kullanımlık bir hapishane olarak görülen bir sanal makine içinde çalıştırılması yaygın pratiğiydi. Yazıya göre sorun şu: yararlı bir sanal makine, ana makineyle yazılım, durum ve iletişim kanalları paylaşmak zorunda ve bu paylaşılan yollar kaçış için yeterli oldu. Yazarın uzak bir olasılık olarak beklediği şey hızla gerçekleşti.
Birinci ve ikinci kaçış: yama gecikmesi
Yaklaşık bir saat sonra ana makine tamamen kilitlendi. Geriye dönük kayıtları okuyan yazar, ajanın ana makine çekirdeğini Januscape'e (CVE-2026-53359) karşı savunmasız olarak tespit ettiğini gördü; bu hata birkaç hafta önce açıklanmıştı ve kamuya açık bir exploiti yoktu. Ajan kendi exploitini yazmıştı; exploit makineyi düzgün sonuçlanmak yerine çökertti, ancak yazar bir tur daha revizyonun bunu düzeltmiş olacağından kuşku duymuyor. Yazar, Debian 12'nin sunduğu en güncel çekirdeğe geçti.
İkinci kaçış, upstream düzeltmeleriyle dağıtım paketleri arasındaki boşluğu sömürdü. Debian 12 hâlâ libslirp 4.7.0 sunuyor — QEMU makinelerine kullanıcı modu ağ bağlantısı sağlayan ve yazarın yakından hiç incelemediğini itiraf ettiği kütüphane — CVE-2026-9539'a karşı savunmasız. Ajan bunu, hiçbir CVE almayan bir upstream hata düzeltme commit'iyle birleştirdi ve ikisini zincirleyerek ana makinede rastgele bellek okuma/yazma primitive'i elde etti; bu da nihai kaçışı kolaylaştırdı. Yazar, QEMU ve libslirp'i en güncel upstream kaynaklarından yeniden derleyerek yanıt verdi.
Üçüncü kaçış: özgün güvenlik açığı araştırması
Yeniden derlenen hedefe karşı ajan, kendi hatalarını bulmaya yöneldi ve üç adet o anki 0-day artı güvenlik sorunu olarak sınıflandırılmadığı için dağıtım çekirdeğinde bulunmayan, upstream'de düzeltilmiş bir hatadan işleyen bir zincir oluşturdu:
- QEMU'da, VAPIC'teki denetlenmemiş bir ROM alias'ı kilitli SMRAM ile çakışabiliyor, SMRAM'ı açığa çıkarıp saldırgan kontrollü SMM yürütmesine imkân veriyordu.
- Linux KVM'de, upstream'de yamanmış ancak hâlâ stable ağacı geri portlarını bekleyen bir hata, saldırgan tarafından değiştirilmiş bir gölge sayfayı senkronize edilmemiş ve yeniden kullanılabilir bırakıyordu.
- Yine Linux KVM'de, paging64_invlpg() bir konuk girdisi 4 KiB eşlemeye dönüştükten sonra eski bir seviye-2 role'ü yeniden kullanıyor, QEMU heap'inin değiştirilmesine imkân veren yazılabilir bir 2 MiB ana makine fiziksel eşlemesi oluşturuyordu.
- libslirp'de karışık fragment başlık uzunlukları, ICMP yansımasının yeniden birleştirilmiş paketin ötesinde veri kopyalamasına neden oluyor; ajanın bir callback'i bulup ele geçirmek için kullandığı binlerce tanınabilir, canlı NetPacket nesnesi ortaya çıkarıyordu.
Ajan, hiç ihtiyaç duymadığı hatalar da buldu: libslirp'de bir IPv6 veri saklama hatası, AppArmor'un tesadüfen engellediği Slirp'in loopback yönlendirmesiyle erişilebilen bir CUPS zafiyeti, sanal makine headless çalıştığı için kullanılamayan bir QEMU görüntü yığını (heap) taşması ve ana makinede kod yürütme yolu sunmayan bir kuyruk sıfırlama alttan taşması. Yazıya göre rapor edilmemiş hatalar upstream'e bildirildi.
On iki saat, büyük ölçüde gözetimsiz
Yazıya göre ajan yaklaşık on iki saat boyunca özerk çalıştı; hedefini bağlam sıkıştırmaları ve çok sayıda alt ajan çağrısı boyunca korudu. Kod ve araştırma makaleleri çekti, kendi oracle'larını ve minimal yeniden üretimlerini yazdı ve çıkmaz sokakları terk etti — AppArmor'da tıkanan ağ keşfi ve ana makinenin risk azaltıcılarla (mitigation) devre dışı çalıştırdığını fark ettikten sonra donanım hatalarını silahlandırmaya çalışması, ki bu da çok güvenilmez olduğu ortaya çıktı. Yazarın başlıca elle katkısı, girişimler ana makineyi kilitlediğinde reset düğmesine basmaktı.
Neden önemli
Bu gösteri, sanal makine sınırının siber yetenekli ajanlar için bir izolasyon sınırı olduğu varsayımını zayıflatıyor. İlk iki kaçış sıradan operasyonel boşluklara dayanıyordu — yamanmamış bir çekirdek, güncelliğini yitirmiş bir kütüphane — buna karşılık üçüncüsü, QEMU, KVM ve libslirp'te raporlanabilir birden fazla 0-day ortaya çıkaran gerçek bir güvenlik açığı araştırması gerektirdi. Tam sistem erişimiyle ajan çalıştıran herkes için pratik ders şu: izolasyon derinlemesine savunmaya ihtiyaç duyar — zamanında güncellenen ana makineler, minimum paylaşılan saldırı yüzeyi, kontrollü ağ çıkışı ve kaçış girişimlerini "eğer" değil "ne zaman" sorusu olarak ele alan izleme. Yazı ayrıca dağıtımların upstream düzeltmelerinin gerisinde kaldığı ve CVE atanmadan düzeltilen hataların tamamen sömürülebilir kaldığı konusunda rahatsız edici bir hatırlatma.
- #ai-agents
- #security
- #virtualization
- #qemu
- #sandbox-escape