EresusSecurity
Araştırmalara Dön
Deserialization Threats

GGUF Metadata Bellek Bozulması Zafiyeti (Llama.cpp Buffer Overflow)

Ecenur ÜzeJunior Sızma Testi Uzmanı
10 Nisan 2026
Güncellendi: 27 Nisan 2026
6 dk okuma

Genel Bakış

Devasa Dil Modellerinin (LLM) paketlenip sıkıştırılması ve tüketici cihazlarında (CPU, Apple Silicon vs.) en hızlı şekilde işletilebilmesi (Inference) için GGUF (GPT-Generated Unified Format) standardı dünya çapında endüstri lideri olmuştur. Kökten C++ altyapısıyla kodlanan llama.cpp mimarisiyle koparılamaz biçimde entegredir.

Fakat bu yaygınlık devasa tehditler barındırır. PAIT-GGUF-100 alarmı; modelin en üst tarafındaki yapısal ölçü bilgilerinin (metadatadaki token büyüklükleri ve verilerin boylama aritmetiğinin) kasten tahrif edildiği (manipüle edildiği) sahte bir GGUF modelini C++ programınız hafızada okumayı denediğinde gerçekleşir.

Bu ataklar llama.cpp gibi platformların yerel kod hatalarına (Örn. Buffer Overflow / Bellek Taşması veya Tamsayı/Integer taşkınlıklarına) dayanarak makineye tam yetki sızıntısı atarlar. Örneğin CVE-2026-33298 numaralı güncel sömürü girişiminde hackerlar, dosya yapısının içerisindeki boyutları kasıtlı olarak devasa yazarlar. Kurban motor bilgisayarda (RAM'de / C++ Heap Limitlerinde) yeterli alan açamaz ve dosya kasten sınırların dışına (Out of bounds) taşarak bilgisayarın başka verilerinin ve kütüphanelerinin üstüne siber komutlar yazmaya başlar (Memory Corruption / RCE).

Saldırı Vektörü: C++ Bellek Sömürüsü

Bu açık, klasik Keras veya PyTorch'taki Python betiklerinin açtığı "Pickle" güvenlik boşluklarına zerre benzemez. Arka planda okutulan gizli bir komut (eval / os.system) stringi yoktur. Bütün işlem ham dijital bayt düzeyinde bilgisayar hafızasına matematiksel taşkınlık attırarak programın çalışmasını şaşırtmaya, kendi yazdığı veriyi işlemciye kabullendirmeye (Stack hijacking) dayanır.

Saldırı Nasıl Gerçekleşiyor (How The Attack Works)

Korsanlar yerel GGUF dosyalarının "iç okuma boyutları" değerleriyle oynarlar. Motor bu boyutlara katıca güvenerek bellekte zafiyetli yetersiz bölümler açar ve patlama yaşanır.

sequenceDiagram
    participant Attacker as Saldırgan 
    participant File_Registry as Dış İnternet Modülleri
    participant LLama_CPP as Sunucudaki `llama.cpp` Motoru
    participant RAM_Heap as Kurban Sunucusu RAM/Bellek

    Attacker->>Attacker: Integer taşkınlığı (Overflow) yaşatacak hatalı tensor formülleri yazar
    Attacker->>File_Registry: "Meta-Model-Q4_K.gguf" sahte adıyla dış dünyaya sunar
    LLama_CPP->>File_Registry: Sistem çalışanı projeyi LLM uygulamasına dener
    LLama_CPP->>LLama_CPP: Dosya doğasında bulunan `gguf_init_from_file()` ile işlem başlar
    LLama_CPP->>RAM_Heap: Aritmetik kandırma sayesinde RAM'de yetersiz-cılız bir bölme oluşturur
    LLama_CPP->>RAM_Heap: Model verisi buraya sığmayıp taşarak (Overflow) başka RAM alanlarını ezer
    RAM_Heap-->>Attacker: Makinenin RAM akışı kilitlenir (DoS) veya Hackera Cihaz RCE'si düşer

Önemli Noktalar

  • Körüne Körüne Matematiksel Güven: Geçmiş okuyucu motorların çoğu, dosyaların kapak (header) kısmında yazan abartılı bellek rakamlarına "Bu formül/boyut geçerlidir" diyerek (Bounds-checking yapmadan) kayıtsızca güvenir, oysaki bu durum tüm bellek güvenlik limitlerin çökmesine yol açar.
  • Sektörel Geniş Menzil: OLLAMA (Ollama), LM Studio yahut llama.cpp motorunu arkada köprüleyen tüm ticari SaaS şirketleri anında bu sızıntılara doğrudan hedef olurlar.
  • Sessiz İkili Payloadlar (Silent Binaries): Herhangi bir .py kodu işlenmediğinden, eski nesil güvenlik duvarları ve String okuyucu Antivirüs (Regex) engelleri, RAM içindeki bu kirlenmeyi asla algılayamazlar.

Etkisi

Bir GGUF arabelleğinin (Buffer) patlatılması işletim sisteminin devir teslimine yol açar. C++ katmanındaki derin bir taşkınlık makinedeki Docker/Konteyner yalıtımlarını es geçerek donanıma temasa izin verir (VM Bypass). Llama.cpp sıklıkla ileri düzey aygıtlarla (CUDA Ekran kartları, Metal chipleri) entegre olduğundan, zararlı bellek dizgeleri anında en kritik donanım şifrelerini çalabilir yahut bütün yerel sistemi felç eden kitlesel DoS zafiyeti doğurabilir.

En İyi Çözüm Pratikleri

  • Aşırı Agresif Motor Yamaları: İşin ucunda C++ bellek taşması varsa mutlaka güncel sürüm olmak mecburidir. OLLAMA, llama.cpp veyahut GPT4All kullanıyorsanız, fread() fonksiyonu ve C++ bellek ayrıcalığı limitlerindeki açıkları kapattığı duyurulan en güncel, modern "Stable Release" sürümlerden başka motoru hiçbir server'a dâhil etmeyin.
  • Kesin Bellek Limitini (Sanitization) Açın: Yazılımlarınızı makinede "Compile"(derleme) ederken, aşırılıkları patlamadan evvel algılayabilecek -D_FORTIFY_SOURCE=2 formülü ile veya ASAN türü adres ayıklama metotlarını (Sanitizers) muhakkak makine ayarlarında devreye alın.
  • Dijital Model İmzası: Hugging Face üzerindeki resmi yayıncıların hesapları haricinde hiçbir siteden rastgele "kuantize" edilmiş (Q4/Q8) GGUF modelleri indirmeyin, kriptografik (SHA256) denklik ispatlamayan projelere sırt dönün.

İyileştirme (Remediation)

Eğer Eresus Sentinel arayüzünde PAIT-GGUF-100 radarı ikaz verdiyse; GGUF içine yazılmış "boyut taşıran" ölümcül bir algoritmayı analiz ahenginden söküp atmıştır. Çöken C++ sınırlarından RAM sızıntısı yayılmadan cihazdaki Inference (Motor okuma) uygulamasını zorla infaz edin. Siber istikrarsızlık taşıyan sözde .gguf çöp uzantısını şirketinizin donanım ve önbelleğinden sonsuza dek izole edin. Hafıza (Memory Cache) alanına zehirli sızıntı olmadığından emin olmak için modeli çalıştırdığınız sanal sunucuyu / makineyi (VM) baştan kurun (Hard-Reset).

İleri Okumalar ve Kaynaklar (Further Reading)

Performanslı C++ motorlarının arka plandaki hassas sömürü yeteneklerini tanımak amacıyla araştırmanızı genişletin:


📥 Eresus Sentinel Kuantize Edilmiş AI Ağırlıklarının Tam Geometrisini Tetkik Eder! Ufak bir tamsayı hilesinin devasa sunucularınızı RCE belleğine çevirmesine mani olun. Eresus Sentinel, makinenizden geçen .gguf uzantılarının derinlerindeki matematik formüllerini, token boyutlarını ve Tensor metadata izdüşümlerini saniyeler içerisinde simüle edip analiz eder. Sistem C++ altyapısındaki asıl çıkarma makinesinde limit zehirlenmesine ulaşamadan önce manipüle edilmiş limitleri bulur, engeller! MLOps ortamınıza dijital istikrar bağışlayın.

Daha Fazla Bilgi | Demo Randevusu Alın

SSS

Bu risk sadece prompt injection ile mi sınırlı?

Hayır. AI güvenliğinde prompt injection önemli bir başlangıçtır ama tek başına resmi anlatmaz. Retrieval katmanı, tool izinleri, model artefact güveni, loglarda hassas veri, kullanıcı yetkisi ve entegrasyon sınırları birlikte değerlendirilmelidir.

İlk teknik kontrol ne olmalı?

Önce sistemin hangi veriye eriştiği, hangi aksiyonları alabildiği ve bu aksiyonların hangi kimlikle çalıştığı haritalanmalıdır. Bu harita olmadan yapılan test genellikle birkaç prompt denemesinden öteye geçemez.

Ne zaman profesyonel destek gerekir?

AI uygulaması müşteri verisine, iç dokümana, üretim API’lerine veya otomatik aksiyon alan agent akışlarına erişiyorsa profesyonel güvenlik incelemesi gerekir. Bu noktada risk artık model cevabı değil, kurum içi yetki ve veri sınırıdır.

Uygulama Notları

AI güvenliği incelenirken ilk soru modelin ne cevap verdiği değil, sistemin hangi yetkiyle ne yapabildiğidir. Aynı prompt güvenli görünebilir; fakat arka tarafta CRM, dosya deposu, ticket sistemi veya SQL aracı bağlıysa risk seviyesi tamamen değişir.

Pratik değerlendirme için ekip şu dört katmanı ayrı ayrı yazmalıdır:

  • Kullanıcıdan gelen giriş ve sistem prompt sınırları.
  • Retrieval kaynağı, index yetkisi ve hassas veri filtresi.
  • Tool çağrıları, API token kapsamı ve onay mekanizması.
  • Log, izleme, alert ve olay müdahale akışı.

Karar Çerçevesi

AI uygulaması yalnızca metin önerisi veriyorsa risk daha çok veri sızıntısı ve yanlış yönlendirme üzerinden okunur. Uygulama tool çağırıyor, dosya yazıyor, ticket açıyor, ödeme başlatıyor veya müşteri kaydı güncelliyorsa değerlendirme agent runtime güvenliğine döner.

Bu ayrım önemlidir çünkü prompt filtreleri runtime yetki hatasını çözmez. Filtre modeli ikna etmeye çalışır; güvenli runtime ise agent yanlış ikna edilse bile neye erişemeyeceğini belirler.

Profesyonel Destek Eşiği

Aşağıdaki durumlardan biri varsa konu artık yalnızca iç kontrol maddesi değildir:

  • Production verisi veya müşteri hesabı etkilenebilir.
  • Yetki sınırı birden fazla rol ya da tenant üzerinden çalışır.
  • Bulgu zincirlenince veri sızıntısı, kalıcı erişim veya operasyon kesintisi doğurabilir.
  • Ekipte test kanıtını yeniden üretecek ve remediation önceliği çıkaracak zaman yoktur.

Eresus Security bu noktada bulguyu sadece raporlamakla kalmaz; istismar kanıtı, etki analizi, remediation sırası ve retest kriteriyle birlikte ele alır. Böylece ekip “ne açık?” sorusundan “neyi, hangi sırayla kapatmalıyız?” kararına geçer.

Ek Kontrol Soruları

  • Bu risk hangi varlıkları etkiliyor?
  • Hangi kullanıcı rolleri bu akışa erişebiliyor?
  • Aynı sorun başka endpoint veya entegrasyonda tekrar ediyor mu?
  • Bulgunun müşteri verisine etkisi var mı?
  • Loglardan olayın izi sürülebiliyor mu?
  • Düzeltme sonrası retest nasıl yapılacak?
  • Geçici önlem ile kalıcı çözüm ayrıldı mı?
  • İş etkisi teknik ekibin dışında da anlaşılır mı?
  • Benzer hata için önleyici kontrol eklenebilir mi?
  • Ekip bu kontrolü release sürecine bağlayabilir mi?
  • Gerekirse bağımsız doğrulama için hangi kanıtlar hazırlanmalı?
  • Sonraki sprintte hangi iç bağlantı ve servis sayfası desteklemeli?

İlgili Araştırmalar