Ne oldu?
Vercel 18 Ağustos 2026’da Sandbox ürünü için toplam 1 milyon dolarlık bir hackleme yarışması açtı. Vercel Sandbox’ta her iş yükü kendi çekirdeğiyle ayrı bir Firecracker mikro sanal makinesinde çalışıyor. pwn.ai’dan Paulos Yibelo yarışmanın üçüncü gününde bu sınırı aşan bir hata buldu. Vercel’in sonuç yazısında bu, 1.285 rapor içindeki tek kritik bulgu.
Hatanın adı PwnEscape, numarası CVE-2026-99999, puanı CVSS 9.3. pwn.ai’a göre araştırmayı insanlar yönetti, kaynak kod analizinde ana model olarak GPT-5.6 Sol kullanıldı ve API maliyeti 700 doların altında kaldı.
Hata nerede?
Sürpriz şu: Hata KVM’de ya da Firecracker’da değil, sunucunun Linux ağ kodunda. Sanal makine bir paket gönderdiğinde paket sanal ağ kartından (virtio-net) geçip sunucudaki bir TAP arayüzüne, oradan da sunucu çekirdeğinin IPv4 koduna giriyor. Yani misafirin ürettiği veri, sunucu çekirdeğinin içinde işleniyor.
İşin içinde checksum offload var. Paketlerin bir sağlama toplamı (checksum) olur ve bunu hesaplamak zaman alır. Linux’ta bir paket CHECKSUM_PARTIAL işaretiyle “toplamı sonra hesapla” diyebilir. Yanında toplamın hangi baytlar üzerinden hesaplanacağını ve sonucun nereye yazılacağını söyleyen iki değer gelir. Sanal makinede bu değerleri misafir belirliyor.
Sorun sıralamada. Sunucu paketin IPv4 başlığını kontrol ediyor ve geçerli buluyor. Paket bölünmesi (fragmentation) gerektiğinde, ip_do_fragment() ertelenmiş toplamı tam o anda hesaplayıp misafirin söylediği yere yazıyor. O yer IPv4 başlığının içiyse, kontrolden geçmiş başlık değişiyor. pwn.ai’ın örneğinde başlığın ilk baytı 0x45’ten 0x4f’ye dönüyor: Başlık 20 değil 60 bayt sanılıyor. Bölücü 60 bayt kopyalıyor ve aradaki 32 bayt sunucu belleği, IP seçenekleri gibi görünerek misafire geri dönüyor.
Vercel’e göre bellek sızıntısı gerçek Vercel sandbox’larında gösterildi. Sunucuyu çökertmek ve sunucuda kod çalıştırmak ise araştırmacının Vercel’e benzer kurduğu kendi KVM ve Firecracker makinelerinde. pwn.ai, sızıntıyı kontrollü yazmalara çevirip lab ortamında sunucuda root komut çalıştırdığını yazıyor. Bu zincirin ayrıntılarını ikinci bölüme bırakmışlar.
Neden herkes yeniden başlattı?
Düzeltme 14 Ekim’de ana Linux’a girdi, CVE 15 Ekim’de yayımlandı. CVE kaydına göre hata Linux 2.6.27’den, yani 2008’den beri var. Düzeltilmiş kararlı sürümler 5.10.272, 5.15.223, 6.1.190, 6.6.159, 6.12.113, 6.18.57 ve 7.2.11. Düzeltme, toplamı tamamlamadan önce yazılacak yerin başlığın gerisinde olduğunu kontrol ediyor. Commit bunu ek bir savunma katmanı olarak tanımlıyor; girişte daha kapsamlı doğrulama hâlâ hazırlanıyor.
Yama misafir makineye değil, sunucunun çekirdeğine gidiyor. Yeni çekirdeğin çalışması için de sunucunun genelde yeniden başlaması gerekiyor. Üstündeki bütün sanal makineler o sırada duruyor. Fly.io 16 Ekim’de “PwnEscape’e karşı önlem” diyerek bütün bölgelerde sunucularını parça parça yeniden başlattı; her sunucu 15–20 dakika kapalı kaldı. Videoya göre başka barındırma şirketleri de acil bakım duyurdu, yeniden başlatamayanlar için canlı yamalar (live patch) da çıktı.
AWS’ye göre EC2, Lambda ve Fargate etkilenmiyor. Ama virtio-net ve KVM ile kendi sanal makinelerini işletenler, Firecracker kullananlar dahil, etkileniyor. AWS geçici bir çözüm olmadığını, sunucu çekirdeğini güncelleyip yeniden başlatmak gerektiğini söylüyor.
Asıl ders
Konteyner yazısında mikro sanal makinelerin saldırı yüzeyini daralttığını anlatmıştık. Bu hâlâ doğru, ama yüzey sıfır değil. Misafirin gönderdiği her paket, her disk isteği sunucuda bir kod yolundan geçiyor. Sınır, o yolların en zayıfı kadar güçlü. pwn.ai yazısı da bir yapay zekâ ajanının test ortamından kaçtığı OpenAI ve Hugging Face olayını hatırlatarak başlıyor: Güvenilmeyen kodu, artık ajanların yazdığı kodu da, çalıştıran herkesin derdi bu.
VPS kiralıyorsan sağlayıcın büyük ihtimalle işi halletti. Kendi KVM sunucularında güvenmediğin sanal makineler çalıştırıyorsan çekirdeğinin düzeltmeyi içerdiğini kontrol et ve yeniden başlat.
Düşün
- Sanal makinenin “duvarı” sadece hipervizör mü? Misafirin sunucuyla konuştuğu başka hangi yollar var?
- Sunucularını yeniden başlatmak zorunda kalsan, üstündeki iş yüklerini kesintisiz nasıl taşırdın?
Videoyu izle
Kaynaklar (9, İngilizce)
- Better Stack (short): Hosting Companies Rebooted EVERYTHING Because of This Bug (yeni sekmede açılır)
- pwn.ai: PwnEscape, Guest-to-Host KVM Escape (CVE-2026-99999) (yeni sekmede açılır)
- Vercel: Findings from the $1 million Vercel Sandbox challenge (yeni sekmede açılır)
- Vercel: One million dollar hacker challenge for Vercel Sandbox (yeni sekmede açılır)
- CVE-2026-99999 (yeni sekmede açılır)
- Linux: ipv4: validate checksum_start before completing checksum (commit 6785011f8b16) (yeni sekmede açılır)
- Linux kernel docs: Checksum Offloads (yeni sekmede açılır)
- AWS Security Bulletin 2026-137-AWS (yeni sekmede açılır)
- Fly.io status: Platform Wide Rolling Host Reboots (yeni sekmede açılır)
Kendi cümlelerimizle yazılmış bir özettir, çeviri değildir. Tüm kaynaklar yukarıda.