GPUStack CVE-2026-102895: 9.8'lik kimlik doğrulama atlatması nasıl çalışıyor?
GPUStack'te 127.0.0.1'e güvenen kimlik doğrulama mantığı, uzaktan yönetici erişimine yol açtı. CVE-2026-102895'in teknik detayları, CISA KEV süreci ve yükseltme rehberi.

GPUStack, birden fazla sunucudaki GPU’ları tek bir havuz gibi yönetmek ve üzerinde model servis etmek için kullanılan açık kaynak bir platform. Özellikle kendi donanımında LLM çalıştıran ekipler için pratik: GPU düğümlerini ekliyorsunuz, model indirip dağıtıyorsunuz, API üzerinden erişiyorsunuz.
4 Kasım 2026’da yayınlanan CVE-2026-102895, bu platformda CVSS 9.8’lik bir kimlik doğrulama atlatması tanımlıyor. 9 Kasım’da CISA’nın Known Exploited Vulnerabilities (KEV) kataloğuna eklendi; yani aktif olarak istismar edildiğine dair kanıt var. Bu yazı, açığın teknik mekanizmasını ve savunma tarafında ne yapılması gerektiğini anlatıyor.
Kısa özet
| Alan | Değer |
|---|---|
| CVE | CVE-2026-102895 |
| CVSS 3.1 | 9.8 (Critical) |
| Vektör | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Zayıflık sınıfı | CWE-287, CWE-290, CWE-346 |
| Etkilenen sürümler | 2.2.0 öncesi |
| Düzeltme | 2.2.0 (tek başına), 2.2.2 (önerilen) |
| CISA KEV | 9 Kasım 2026 eklendi |
| Federal son tarih | 12 Kasım 2026 |
Açık nasıl çalışıyor?
Sorunun kökü, gpustack/api/auth.py içindeki get_current_user fonksiyonunda. GPUStack, force_auth_localhost ayarı kapalıyken (varsayılan) loopback’ten gelen isteği yerleşik yönetici olarak kabul ediyor. Mantık şu: “127.0.0.1’den gelen kişi zaten sunucunun başındadır, ona tekrar şifre sormayalım.”
Bu varsayım, uygulama doğrudan kullanıcıyla konuştuğunda makul. Ama GPUStack çoğu kurulumda bir ters proxy’nin (nginx, Traefik, Caddy) arkasında çalışıyor. Ve istemcinin IP’sini belirleyen client_ip_getter, iki durumda yanlış sonuç veriyor:
- Aynı makinedeki ters proxy, isteği 127.0.0.1’den iletiyorsa, GPUStack bunu gerçek istemci sanıyor.
- İstemci,
X-GPUStack-Real-IPbaşlığını kendisi gönderip değerini127.0.0.1yaparsa, uygulama bu başlığa güveniyor.
Yani uzaktan gelen bir saldırgan, isteğini yerel makineden geliyormuş gibi gösterebiliyor. Kimlik doğrulama atlanıyor ve oturum, yerleşik yönetici olarak açılıyor.
Elde edilen erişim ne kadar geniş?
CVE kaydına göre atlatma sonrası saldırgan şunları yapabiliyor:
- Kullanıcı ve model tanımlarını değiştirmek,
- Kalıcı yönetici API anahtarı oluşturmak,
- Worker ve bulut sağlayıcı sırlarını okumak,
POST /v2/inference-backends/from-yamlüzerinden kod çalıştırmak.
Son madde, olayın en kritik kısmı. GPUStack’in “inference backend” mekanizması, YAML tanımıyla özel bir çalışma zamanı veya konteyner başlatmaya izin veriyor. Yönetici yetkisiyle bu uç noktaya erişen biri, pratikte GPU düğümünde kod çalıştırabiliyor. GPUStack düğümleri genellikle model ağırlıklarına, Hugging Face token’larına, bulut kimlik bilgilerine ve iç ağ erişimine sahip; yani tek bir auth bypass’ı, tüm AI altyapısına açılan kapı olabiliyor.
Gerçekten istismar edildi mi?
Evet. GPUStack’in 31 Temmuz 2026’da yayınlanan GHSA-gj9m-f8ph-pmhr duyurusu, açığın 2.1.1 sürümlü bir kurulumda aktif olarak istismar edildiğini söylüyor. Saldırganların özel backend’ler üzerinden ters kabuk (reverse shell) çalıştırdığı belirtiliyor. İstismarı bildiren kişi Javier Sixto (Ulex Innovative Systems).
CISA, 9 Kasım 2026’da açığı KEV kataloğuna ekledi. CISA duyurusunda dört açık birlikte listeleniyor; GPUStack bunlardan biri. Federal kurumlar için verilen son tarih 12 Kasım 2026.
Bu son tarih yalnızca ABD federal sivil kurumları için bağlayıcı. Ama KEV’e girmek, açığın teorik değil, sahada kullanıldığının işareti. EPSS skorunun düşük görünmesi (yazı sırasında yaklaşık %0,6) yanıltmasın; EPSS bir olasılık tahmini, KEV ise gözlemlenmiş istismar.
Hangi kurulumlar risk altında?
Risk, üç koşulun birlikte oluşmasına bağlı:
- GPUStack sürümü 2.2.0’dan eski,
force_auth_localhostkapalı (varsayılan),- API’ye güvenilmeyen bir ağdan erişilebiliyor; ya aynı makinede ters proxy var ya da uygulama
X-GPUStack-Real-IPbaşlığına güveniyor.
Kurulum yalnızca iç ağda, VPN arkasında ve ters proxy olmadan çalışıyorsa risk daha düşük. Ama “iç ağ” tek başına güvenlik değil; yanlış yapılandırılmış bir proxy veya başlık yönlendirmesi kapıyı açabilir. Ayrıca aynı sunucuda çalışan başka bir uygulamanın ele geçirilmesi, loopback’e istek atmasına yetebilir.
Düzeltme ve yükseltme
İlk düzeltme 2.2.0 sürümünde (18 Haziran 2026) yayınlandı. Ancak aynı dönemde başka bir kimlik doğrulama sorunu daha vardı: CVE-2026-102894, 0.7.1’den 2.2.2’ye kadar olan sürümleri etkiliyor. Bu yüzden önerilen hedef 2.2.2 (24 Temmuz 2026).
# Docker ile çalıştırıyorsanız imajı güncelleyin
docker pull gpustack/gpustack:v2.2.2
# Helm kullanıyorsanız chart sürümünü ve image tag'ini kontrol edin
helm list -A | grep gpustack
Yükseltmeden sonra şunları doğrulayın:
force_auth_localhostayarının açık olduğundan emin olun. Varsayılana güvenmeyin; kurulumunuzda açıkçatrueyapın.- Ters proxy, istemciden gelen
X-GPUStack-Real-IPbaşlığını silin veya yalnızca kendi eklediği değeri geçirin. Başlığı körü körüne iletmeyin. - Yönetici API anahtarlarını gözden geçirin; tanımadığınız anahtar varsa iptal edin.
- Worker ve bulut sağlayıcı kimlik bilgilerini döndürün (rotate). Açık istismar edilmişse bu sırlar ele geçmiş olabilir.
- Denetim kayıtlarında
POST /v2/inference-backends/from-yamlçağrılarını ve beklenmeyen kullanıcı/model değişikliklerini arayın.
Hemen yükseltemiyorsanız
Geçici önlemler, yamayı ertelemek için makul; kalıcı çözüm değil:
- GPUStack API’sini doğrudan internete açmayın. VPN veya kimlik doğrulamalı bir edge proxy arkasında tutun.
- Ters proxy’de
X-GPUStack-Real-IPbaşlığını temizleyin. force_auth_localhostayarınıtrueyapın; loopback istisnası kapansın.- Aynı makinede çalışan diğer servisleri ayrı bir kullanıcı/konteyner olarak izole edin.
- GPU düğümlerinden dış ağa giden trafiği kısıtlayın; ters kabuk ve veri sızdırma hareketini zorlaştırın.
Daha geniş ders
GPUStack olayı, “iç ağda zaten” varsayımının ne kadar kırılgan olduğunu gösteriyor. Loopback’e güvenmek, özellikle ters proxy’li kurulumlarda sık görülen bir hata. Aynı desen yalnızca GPUStack’te değil, birçok self-hosted uygulamada var: X-Forwarded-For veya X-Real-IP başlığına doğrulamadan güvenmek.
AI altyapısı söz konusu olduğunda risk daha da büyüyor; çünkü bu sistemlerde model ağırlıkları, bulut kimlik bilgileri ve GPU kapasitesi bir arada. Bir auth bypass’ı yalnızca veri sızdırmıyor, aynı zamanda saldırganın sizin pahalı GPU’larınızda istediği işi çalıştırmasına da izin veriyor.
Kısacası: GPUStack kullanıyorsanız sürümü 2.2.2’ye çıkarın, force_auth_localhost ayarını açık tutun ve proxy başlıklarına güvenmeyi bırakın. CISA’nın 12 Kasım tarihi ABD federal kurumları için; ama aktif istismar herkes için geçerli.