CVE-2026-48710 Nedir?
CVE-2026-48710, Starlette ve FastAPI uygulamalarında kritik bir güvenlik açığıdır. Bu zafiyet, kötü niyetli kullanıcıların Host başlıklarını manipüle ederek kimlik doğrulama süreçlerini atlatabilmesine olanak tanır. 2026 yılında X41 D-Sec tarafından keşfedilen bu zafiyet, açık kaynak kodlu projeler için ciddi bir tehdit oluşturuyor.
Zafiyetin Etkileri
Starlette sürüm 1.0.1'den önceki versiyonlarda, istek URL'si, HTTP Host başlığı ile birleştirilerek oluşturuluyor. Örneğin, kötü niyetli bir kullanıcı GET /protected isteği gönderdiğinde, Host: example.com/health?x= başlığıyla birlikte, istek /protected yoluna ulaşabilir ancak request.url.path değeri /health olarak dönecektir. Bu durum, her türlü kimlik doğrulama kontrolünü aşabilir ve korumasız API erişimlerine yol açabilir.
Hedeflenen Sistemler
Bu zafiyet, Starlette ya da FastAPI tabanlı Python uygulamaları için kritik bir tehdit. Özellikle:
LLM (Büyük Dil Modelleri) sunucuları (vLLM gibi)
LLM proxy sunucuları (LiteLLM gibi)
Özel API'ler ve MCP (Model Çalıştırma Protokolü) sunucuları
Google ADK-Python, Ray Serve ve BentoML gibi platformlar etkilenebilir.
Çözüm Önerileri
Starlette Güncellemesi: Starlette'i 1.0.1 veya daha yeni bir sürüme güncelleyin. Bu sürüm, geçersiz karakterler içeren Host başlıklarını göz ardı ediyor.
Orta Katman (Middleware) Kullanımı: Yol tabanlı kimlik doğrulama orta katmanlarını kullanmaktan kaçının. Bunun yerine, Starlette'in
requires()dekoratörünü ya da FastAPI'ninDepends()veSecurity()yöntemlerini tercih edin.Ters Proxy Kullanımı: ASGI sunucunuzun önünde nginx, Caddy, Traefik ya da HAProxy gibi bir ters proxy kullanın. Bu tür proxy'ler, RFC standartlarına uygun olarak Host başlıklarını doğrular ve normalleştirir, böylece bu saldırıyı etkisiz hale getirir.
ASGI Scope Kullanımı: Middleware kullanmanız gerekiyorsa,
scope['path']değerini kullanın. Bu, HTTP isteği sırasında oluşturulmuş bir değerdir ve Host başlığı ile manipüle edilemez.
Riskler ve Sınırlamalar
Bu zafiyet, yalnızca belirli sürümlerle sınırlı değil. Birçok geliştirici, ASGI sunucularını doğrudan dışarıya açarak bu zafiyeti riske atıyor. Özellikle geliştirme ve test ortamlarında güvenlik önlemlerinin eksik olduğu gözlemleniyor.
Sonuç ve Öneriler
Starlette ve FastAPI kullanan geliştiricilerin bu açığı göz önünde bulundurarak uygulamalarını gözden geçirmeleri gerekiyor. Zafiyetin potansiyel etkileri göz önüne alındığında, güncellemelerin bir an önce yapılması ve güvenlik önlemlerinin artırılması şart. Geliştiricilerin, kendi kod tabanlarını taramak için X41'in sağladığı tarayıcıyı kullanmaları ve request.url.path kullanımını kontrol etmeleri öneriliyor.



