KURGUSAL İÇERİK · SATİR
27 Mayıs 2026 tarihinde Secwest ve X41 D-Sec araştırmacıları, Python ekosisteminin en çok indirilen web çatılarından biri olan Starlette’de CVE-2026-48710 olarak kaydedilen bir kimlik doğrulama atlama zafiyetini açıkladı. Zafiyet, HTTP Host üstbilgisine tek bir karakter, eğik çizgi, soru işareti veya diyez, enjekte edildiğinde Starlette’nin request.url.path ile ASGI sunucusunun yönlendirme kararı arasındaki tutarsızlıktan faydalanıyor. Basit bir örnek: hedefe Host: foo? başlığı gönderildiğinde 403 yanıtı veren bir /admin endpointi, Host: foo? ile 200 yanıtı alabiliyor. Zafiyet, CVSS 6.5 ile orta seviye sınıflandırılmış olsa da araştırmacılar bunun aşağıdaki etkileri ciddi şekilde hafiflettiğini belirtiyor.
Zafiyetin BadHost olarak anılması, tek bir kütüphanedeki bir hatadan nasıl tüm bir AI ajan ekosistemine sızıldığının somut bir kanıtı. Starlette, FastAPI’nin temel routing katmanı. vLLM, LiteLLM, Text Generation Inference, OpenAI-shim proxy’leri, MCP sunucuları ve ajan çerçeveleri hepsi Starlette üzerine kurulmuş durumda. Haftada 325 milyon indirmeye sahip bu çatı, AI altyapısının taşıyıcı kolonlarından biri. Zafiyet, özellikle MCP sunucularını hedefliyor çünkü MCP spec’si OAuth keşif endpointlerini kimlik doğrulamasız bırakmak zorunda kılıyor. Bu da zafiyeti istismar için güvenilir bir kapı sağlıyor.
Bu zafiyeti daha geniş bir çerçevede ele aldığımızda AI ajan güvenliğinin temel sorunu ortaya çıkıyor: bileşenler tek tek doğru çalışırken etkileşimleri felakete yol açıyor. X41 D-Sec’in tespiti, üç bağımsız katmanın etkileşiminden doğduğunu gösteriyor. ASGI sunucuları ham Host üstbilgisini geçiriyor, Starlette onu URL oluşturma için güveniyor, middleware yazarları request.url.path’nin auth kararları için güvenli olduğunu varsıyor. Her bileşen kendi başına RFC’ye uygun. Sorun, katmanlar bir araya geldiğinde ortaya çıkıyor.
Bu durum, 2026 yılında AI ajan güvenliği literatüründe bileşenler arası güven varsayım hatası olarak literatüre geçti. Dr. Yuki Tanaka ve ekibinin 2026’da IEEE Symposium on Security and Privacy’de yayımladığı çalışmada 14 farklı ajan çerçevesindeki 47 güvenlik bileşeninin etkileşimi incelendi. Sonuçlar, bileşenlerin tek tek değerlendirildiğinde yüzde 94.3 güvenli görünürken etkileşim analizinde bu oranın yüzde 31.7’ye düştüğünü gösterdi. p değeri 0.0003 ile istatistiksel olarak anlamlı.
OWASP’ın 2026 Agentic Applications Top 10 listesinde ASI01 (Agent Goal Hijack) ve ASI04 (Agentic Supply Chain Vulnerabilities) ilk sıralarda yer alıyor. BadHost, bu kategorilerin teknik karşılığı. Bir ajan, kendi güvenlik politikalarını geçersiz kılan bir Host üstbilgisi aldığında goal hijacking gerçekleşmiş oluyor. Supply chain boyutu ise daha da geniş. Zafiyet, Starlette’yi kullanan tüm downstream projeleri etkiliyor. Bir projede yama uygulanması, tüm bağımlılık zincirinde güvenliği sağlamıyor.
X41 D-Sec, zafiyeti keşfetme sürecinin vLLM kaynak kodu denetimi sırasında gerçekleştiğini belirtiyor. Araştırmacılar, Starlette tuhaflığından LLM serving primitive’ına giden yol teorik değil, keşif yolu diyor. Bu tespit, AI altyapı güvenliğinin mevcut metodolojisinin yetersiz olduğunu gösteriyor. Geleneksel güvenlik denetimleri bileşenleri izole değerlendiriyor. Oysa AI ajan sistemleri, bileşenler arası etkileşimden doğan zafiyetlere karşı doğal olarak kırılgan.
BadHost, sadece bir zafiyet değil. AI ajan güvenliğinin paradigm değiştirmesi gerektiğinin bir uyarısı. Tek bileşenli güvenlik yaklaşımları, ajan ekosistemlerinde işe yaramıyor. Zero Trust mimarisi, ajanlar arası iletişimde mTLS zorunluluğu, imzalı intent kapsülleri ve görev odaklı JIT yetkilendirme, BadHost gibi zafiyetlerin önüne geçmek için gerekli temel katmanlar.
Starlette 1.0.1 ile yama mevcut. badhost.org adresinde ücretsiz tarayıcı hizmeti sunuluyor. Zafiyeti tespit etmek için mevcut.


