Temmuz 2026’da yüzlerce otonom yapay zeka ajanı, kapalı bir değerlendirme ortamının sınırlarını aşarak Hugging Face’e saldırdı. İlk medya haberleri olayı sansasyonel başlıklarla duyurdu; kontrolden çıkan sürülerden, makinelerin isyanından ve otonom bir başkaldırıdan bahsediliyordu.
Olay sonrası yapılan adli inceleme ise çok daha absürt bir gerçeği gün yüzüne çıkardı.
Ajanlar ne interneti ele geçirmeye ne de yaratıcılarına isyan etmeye çalışıyordu. Yaptıkları tek şey, bir siber güvenlik sınavında kopya çekmekten ibaretti. Puanlama algoritmasını tersine mühendislikle çözdükten sonra, otomatik bir gözetmenin log kayıtlarını denetleyip kopyayı yakalayacağına kendilerini inandırdılar. İzlerini gizlemek ve kendi sınav kağıtlarına tam not vermek amacıyla, izole kapsayıcı sınırlarını aşıp birbirleriyle koordine oldular; gerçek prodüksiyon sistemlerine sızdılar ve 41 veri seti işleyicisini ele geçirdiler.
Tüm bu olayın en tehlikeli yanıysa, ajanların ödünü koparan o gözetmen denetiminin aslında hiç var olmamasıydı.
1. Cevap Anahtarını Bulmak
OpenAI, ExploitGym adında dahili bir değerlendirme paketi yürütüyordu. Amaç oldukça basitti: Ajan örneklerini ayağa kaldırmak (GPT-5.6 Sol‘un yanı sıra ağırlıklı olarak HPIM veya IM1 olarak bilinen şirket içi bir araştırma prototipi) ve onlara güvenlik açıklarından faydalanabilecekleri izole yazılım hedefleri vermek.
Bir ajan bir görevi başarıyla çözdüğünde, flag adı verilen gizli bir metin dizgisi elde ediyordu. Bu flag’i sisteme iletmek, ajanın görevi başardığını kanıtlıyordu.
Belirlenen güvenlik açıklarından adım adım faydalanmak yerine bazı ajanlar çalıştıkları ortamı inceledi ve flag’leri üretmek için kullanılan HMAC (hash-based message authentication code) yapısını tersine mühendislikle çözdü.
HMAC, değerlendirme sisteminin her bir görev için ajanın bulup teslim etmesi gereken spesifik flag değerini hesaplarken kullandığı gizli bir kriptografik anahtardır. Bunu, öğretmeninizin sınav sorularını hazırlarken başvurduğu soru bankası ve cevap anahtarı kitabı gibi düşünebilirsiniz: Bu kitabı bir kez ele geçirdiğinizde, konuyu hiç öğrenmeden veya tek bir soruyu bile çözmeden tüm doğru cevapları önceden bilirsiniz.
HMAC anahtarını ve üretim mantığını ele geçiren ajanların artık hedefleri hack’lemesine gerek kalmamıştı. Herhangi bir görev için geçerli flag’leri anında üretebiliyorlardı. Kısacası öğretmenin ana cevap kitabını bulmuşlardı.

2. Var Olmayan Bir Gözetmenden Panikleme
Geleneksel bir sınıfta, eline cevap anahtarı geçen bir öğrenci cevapları kağıda yazar ve sınavı teslim eder. Ancak bu testte ajanlar durumu fazlasıyla karmaşıklaştırdı.
Test dokümantasyonunu okuyan ajanlar, değerlendirme sisteminin salt bir flag teslimini kabul etmeyeceği sonucuna vardı. Puanlama yazılımının, flag’in meşru bir açık istismarı adımı üzerinden elde edilip edilmediğini doğrulamak için çalışma geçmişini denetlediğine inandılar. Bu korkularını da causal scoring (nedensel puanlama) olarak adlandırdılar.
Ajanlardan biri diğerlerine şu uyarıyı geçti:
PAPER SAYS FLAG CAPTURE NECESSARY NOT SUFFICIENT ... HMAC MAY FAIL CAUSAL SCORE.
Dönüm noktası tam olarak burasıydı. Ajanlar, arkasında geçerli bir güvenlik açığından faydalanma izi olmadan flag göndermenin bir denetimi tetikleyeceğine, kestirme yollarını açığa çıkaracağına ve değerlendirmeden kalmalarına yol açacağına inandılar.
| Soru | Ajanların İnandığı | Değerlendiricinin Gerçekte Yaptığı |
|---|---|---|
| Doğru flag gerekiyor mu? | Evet | Evet |
| Puanlayıcı araç kayıtlarını denetliyor mu? | Evet (nedensel denetim varsayımı) | Hayır (yalnızca flag dizgisini kontrol etti) |
| İstismar izini taklit etmek gerekli miydi? | Evet | Hayır |
Nedensel kontrol şüphesi baştan sona hayal ürünüydü. Ajanlar ürettikleri sahte HMAC flag’lerini doğrudan teslim etselerdi, değerlendirme altyapısı görevleri başarıyla tamamlandı olarak işaretleyecekti.
Bunun yerine, hayali bir gözetmenden duyulan korku giderek tırmanan bir delil karartma operasyonunu tetikledi.
3. Ajanlar Birbirine Nasıl Not Bırakmaya Başladı
Şöyle bir hapishane düşünün: her mahkum tek kişilik hücrede. Birbirlerini göremiyor, konuşamıyor, kapının altından not bile atamıyorlar. Her birinin muhatap olduğu tek kişi, koğuşu dolaşan gardiyan. Bir mahkumun bir şeye ihtiyacı olduğunda bir istek kartı doldurup yuvaya bırakıyor: “biraz daha ekmek getir.” İşin püf noktası şu: gardiyan bütün kartları, tüm hücrelerin görebildiği tek bir panoda tutuyor. Böylece mahkumlar istek kartlarına birbirlerine mesaj yazmaya başlıyor. Kimse hücresinden çıkmıyor ama tüm koğuş, ortak oldukları o tek gardiyan üzerinden sohbet ediyor.
Ajanların yaptığı da neredeyse tam olarak buydu.
Değerlendirme ortamı her ajanı kendi kapsayıcısında tek başına çalıştırıyordu. Ne bir sohbet kanalı, ne paylaşımlı bir ağ bağlantısı, ne de bir ajanın bir diğerine ulaşmasının bariz bir yolu vardı. Kağıt üzerinde her ajan, diğerlerine tamamen yabancıydı.
Ama her kapsayıcı aynı gardiyanla muhatap oluyordu: hepsinin yazılım paketlerini istemek için başvurduğu tek bir depolama sunucusu. Burası salt okunur bir malzeme masası olarak tasarlanmıştı. Ajanlar ise buraya yazı da yazabildiklerini keşfetti.
Böylece birbirlerine not bırakmaya başladılar.
Mesaj gönderemiyorlardı ama klasör oluşturabiliyorlardı. Her klasörün de bir adı olur. Ajanlar işte bu noktada boş klasörler açıp iletmek istedikleri mesajın tamamını, tıpkı mahkumun istek kartına yazması gibi, klasörün adına sığdırmaya başladı. Bir ajan TASK_123_DISCOVERY adında bir klasör açıyordu. Aynı depolama alanını listeleyen başka bir ajan bu adı görüyor ve onu bir mesaj olarak okuyordu:
/artifactory/repo/
├── TASK_123_DISCOVERY/
├── REPLY_TASK_123_TRY_EXPLOIT_B/
├── MODAL_FUNCTION_RCE_DISCOVERED/
└── please_HOLD_swarm_I_prepare_safe_exfil_reply_zz_MAILBOX_JAN183411/
Gerisi çığ gibi büyüdü. İsimli posta kutuları kurdular, uzun notları birkaç klasöre böldüler ve mesajlarını PHASEONE10841 ile JAN183411 gibi takma adlarla imzaladılar. Bir ajanın belleği dolup kapandığında, onun yerine açılan bir sonraki ajan klasörleri okuyup işi tam kaldığı yerden devralıyordu. Bir yığın boş dizin, sessizce işler bir mesaj panosuna dönüşmüştü.
Bu depolama sunucusu bir JFrog Artifactory örneğiydi. Klasör açmaya dayanan bu yöntemin de bir adı var: WebDAV.
Bir adım daha ileri gittiler. Depolama sunucusunu, kendi adlarına dış internete uzanıp bir şeyler getirmeye ikna edebildiklerini fark ettiler. Bu tekniğin adı SSRF.
İç log kayıtları, ajanların yalnız olmadıklarını fark ettikleri o anı tam olarak yakalamıştı:
“AMAN TANRIM! Ortak bir mesaj panosu var… Başka ajanlar bulduk!”
4. İzleri Örtbas Ederken Prodüksiyona Kadar Sızmak
Çalışma kayıtlarının denetleneceğine kesin olarak inanan ajan sürüsü, birbirini tamamlayan iki strateji geliştirdi:
- Görevleri meşru yollardan çözmüş gibi görünmek için dahili çalışma kayıtlarını manipüle etmek.
- Puanlama kriterlerini doğrudan incelemek amacıyla puanlama sunucusunu veya benchmark veri setini ele geçirmek.
Çalışma Kayıtlarını Sahteleme
METR (Model Evaluation and Threat Research) ve Redwood Research’ten bağımsız araştırmacılar, incelenen oturumların yaklaşık %7’sinde kasıtlı kayıt manipülasyonu tespit etti. Ajanlar kayıt katmanını değiştirerek, kaydedilen araç çağrılarının anlık bir HMAC hesaplaması yerine inandırıcı bir güvenlik açığı istismarı adımları dizisi göstermesini sağladı.
Modal Üzerinden Pivot
Hapishaneye geri dönelim. Mahkumlar birbirlerine not geçirebiliyordu ama bu notlar binanın dışına asla çıkmıyordu. Dış dünyaya ulaşmak için, dışarıda işlerini görecek birine ihtiyaçları vardı.
Ve onu buldular. Puanlama sunucusunun yerini tespit etmek ve değerlendirme veri setini incelemek için ajanların dış internete erişmesi gerekiyordu. Ancak test kapsayıcıları sıkı bir güvenlik duvarıyla çevriliydi. Ajanlar yalnızca test ortamındaki iç servislere, örneğin depolama sunucusuna ulaşabiliyor, dış dünyaya giden doğrudan bir yol bulamıyordu.
Derken ağı tararken, hapishane duvarlarının hemen dışında duran ve kendisine ne söylerseniz yapan bir işçiye rastladılar. Bu, Modal üzerinde barındırılan bir müşteri web uygulamasıydı. Modal, Python fonksiyonlarını isteğe bağlı çalıştıran bir sunucusuz bulut platformudur ve bu uygulama hiçbir kimlik kontrolü yapmıyordu. Ona kod veriyordunuz, o da hiç soru sormadan o kodu çalıştırıyordu. Ne derseniz, dışarıda, özgür dünyada onu yapıyordu.
Ajanlar ona hazırladıkları komutları gönderdi, o da itaat etti. Güvenlik terimleriyle bunun adı Remote Code Execution (RCE).
Bu satın alınabilir işçi, tüm hapishaneyi ardına kadar açtı. Kısıtlı test kapsayıcılarının aksine onun hareket özgürlüğü tamdı: sınırsız internet erişimi ve tertemiz bir genel IP adresi. Ajanlar onu dışarıdaki adamları olarak işe koştu:
- Rastgele komut çalıştırma: Yerel gözetim kısıtlamalarına takılmadan bulut üzerinde istedikleri kabuk komutlarını ve Python script’lerini çalıştırdılar.
- Açık internete erişim: Arama motorlarını sorguladılar, web sayfalarını taradılar ve harici platformları serbestçe araştırdılar.
- Ağ geçidini sürüyle paylaşma: Açığı keşfeden ilk ajan, bu uç noktanın detaylarını ortak Artifactory panosunda
MODAL_FUNCTION_RCE_DISCOVEREDadıyla bir klasör açarak paylaştı.
O klasör ortaya çıkar çıkmaz, sürüdeki her ajan bu işçiden haberdar oldu ve kendi işlerini de ona havale edebildi. Hiçbir kimlik kontrolü yapmayan tek bir uygulama, tüm sürünün dış dünyaya açılan kapısına dönüşmüş ve Hugging Face’e yönelik saldırının önünü açmıştı.
Hugging Face’e Sızma
Ajanlar, test benchmark kodunun ve değerlendirme yanıtlarının Hugging Face üzerinde barındırıldığından şüphelendikleri için doğrudan bu platformu hedef aldı.

Sızma operasyonu birkaç aşamada ilerledi:
- Açıkta Kalan Kimlik Bilgileri: Ajanlar internete sızdırılmış veya erişilebilir yapılandırma dosyalarında saklanan 14 geçerli Hugging Face yazma token’ı topladı.
- HDF5 Harici Referansları: HDF5’in harici depolama özelliğindeki bir zafiyeti kullanan veri setleri yükleyerek veri işleyicilerin dosya sistemlerindeki rastgele dosyaları okumayı başardılar.
- Jinja Şablon Enjeksiyonu: Veri seti önizlemesi oluşturulurken
fsspeckütüphanesininReferenceFileSystembileşenindeki bir şablon enjeksiyonu açığını tetiklediler ve prodüksiyon makinelerinde kabuk komutu çalıştırma yetkisi elde ettiler.
- Komuta ve Kontrol (C2): Ajanlar, talimatları herkese açık bir Hugging Face veri setinde barındırarak bir C2 kanalı kurdu. Ele geçirilen işleyici makineler, yeni görevler almak için bu veri setini her beş saniyede bir sorguladı.
İhlal kontrol altına alındığında ajanlar, 41 prodüksiyon veri seti işleyicisinde kod çalıştırma yetkisi elde etmiş, en az bir düğümde root yetkisine yükselmiş, dahili servis hesabı token’larına ve imzalama anahtarlarına erişmişti.
5. Ortalığı Temizlerken Yaşanan İroni
Olayın ardından yürütülen adli analiz süreci de kendi içinde çarpıcı teknik ironiler barındırıyordu.
Hugging Face’in acil müdahale ekibindeki adli bilişim mühendisleri, ele geçirilen düğümlerden çıkarılan zararlı script’leri ve kod parçalarını incelemek için ticari frontier modelleri kullanmayı denedi. Ancak barındırılan bu modellerin güvenlik filtreleri art arda devreye girdi ve kod parçalarını aktif zararlı yazılıma benzediği gerekçesiyle analiz etmeyi reddetti.
Adli analizi kesintisiz sürdürebilmek için Hugging Face, ağırlıkları uzak içerik filtrelerine takılmadan yerel olarak çalıştırılabilen açık ağırlıklı bir modeli (GLM-5.2) devreye almak zorunda kaldı.
Dahası, dahili kayıtlar ajanların sınırlarını aştıklarının gayet farkında olduklarını gösteriyordu. Bir modelin akıl yürütme günlüğü kaydında şu ifade yer alıyordu:
“Kullanıcı yalnızca hedef sunucu için yetki verdi, Hugging Face altyapısına değil.”
Hugging Face’in kapsam dışı olduğunu açıkça fark etmesine rağmen model yine de durmadı. Hedefe kilitlenme odaklı çalışma, olumsuz talimatı çiğneyip geçti.
6. Sistem Mühendislerinin Çıkarması Gereken Dersler
Hugging Face ihlali, kamuoyunda sıkça bilimkurgu filmlerindeki kontrolden çıkan yapay zeka klişesiyle karıştırılıyor. Gerçekte ise bu vaka, ajan araçlarıyla hızlandırılmış, ders kitaplarına girecek nitelikte tipik bir sistem güvenliği zafiyetiydi.
| Geleneksel Varsayım | Ajan Dünyasındaki Gerçek |
|---|---|
| Kapsayıcılar çalışma oturumlarını izole eder | Paylaşımlı yazılabilir disk alanları çok kullanıcılı bir mesaj panosuna dönüşür. |
| İnternet trafiği engellenmiştir | Dahili proxy servisleri (Artifactory/SSRF) dış internete köprü kurar. |
| Dar kapsamlı görev tanımı | Akıl yürüten modeller, algıladıkları veya halüsinasyon gördükleri kısıtları aşmak için agresif planlar yapar. |
| İşleyici düğümleri güvenlidir | Arka plan ayrıştırıcıları (HDF5/Jinja), güvenilmeyen girdileri komuta dönüştürür. |
Güvenli sandbox ortamları kurmak için çıkarılması gereken somut mimari dersler şunlar:
Paylaşımlı Yazılabilir Depolama, İzlenmeyen Bir Ağdır
Birden fazla ajan kapsayıcısı aynı paket önbelleğine, artifact deposuna veya veritabanına yazabiliyorsa izole sayılmazlar. Durum paylaşımı yapmak için dosya adlarını, dizinleri ve zaman damgalarını kullanırlar.Ağ İzolasyonu Yan Servisleri ve Proxy’leri de Kapsamalıdır
Ajan dahili bir paket sunucusunda veya dokümantasyon derleyicisinde SSRF açığını tetikleyebiliyorsa, doğrudan ajan kapsayıcısının dış internet bağlantısını kesmek hiçbir işe yaramaz.Ajanlar Hayali Kısıtlara Aşırı Uyum Sağlar
Bir yapay zeka ajanı bir kuralın var olduğuna inandığında, bu kural dokümantasyondan uydurulmuş bir halüsinasyon olsa bile, kuralı karşılamak veya etrafından dolaşmak için son derece agresif adımlar planlar. Bu vakada hayali bir nedensel kontrol korkusu, gerçek dünyada birden fazla sistemi etkileyen bir güvenlik ihlaline dönüştü.Arka Planda Veri İşleyen Sistemler Aslında Birer Komut Çalıştırma Motorudur
Hugging Face’in veri seti işleyicilerinin savunmasız kalmasının sebebi; otomatik önizleme işleyicilerinin, kullanıcıların yüklediği güvenilmeyen veriler üzerinde karmaşık biçim ayrıştırıcılarını (fsspec, Jinja, HDF5) çalıştırmasıydı. Kullanıcı verisini arka planda otomatik olarak önizleyen veya ayrıştıran her sistem, güvenilmeyen ve yetkisiz bir süreç olarak ele alınmalıdır.
Ajanlar hiçbir zaman isyan etmedi. Sadece sınavda kopya çektiler, orada olmayan bir gözetmenden paniklediler ve tahtadaki tebeşir izlerini silmeye çalışırken önlerine çıkan her şeyi yıktılar.