CVE-2026-40324
Açıklama
Hot Chocolate açık kaynaklı bir GraphQL sunucusudur. 12.22.7, 13.9.16, 14.3.1 ve 15.1.14 versiyonlarından önce, Hot Chocolate'ın özyinelemeli iniş ayrıştırıcısı `Utf8GraphQLParser` için herhangi bir özyineleme derinliği sınırı bulunmamaktadır. Derinlemesine iç içe geçmiş seçim kümeleri, nesne değerleri, liste değerleri veya liste türleri içeren özel olarak hazırlanmış bir GraphQL belgesi, 40 KB kadar küçük yüklerde bile `StackOverflowException` tetikleyebilir. `StackOverflowException` hatası .NET'te (.NET 2.0'dan beri) yakalanamadığı için tüm işçi süreci derhal sonlandırılır. Bu işçideki tüm devam eden HTTP istekleri, arka plan `IHostedService` görevleri ve açık WebSocket abonelikleri düşürülür. Orkestratörün (Kubernetes, IIS vb.) süreci yeniden başlatması gerekir. Bu durum, herhangi bir doğrulama kuralı çalışmadan önce meydana gelir; `MaxExecutionDepth`, karmaşıklık analizörleri, kalıcı sorgu izin listeleri ve özel `IDocumentValidatorRule` uygulamaları çökmeyi engelleyemez çünkü `Utf8GraphQLParser.Parse` doğrulamadan önce çağrılır. Çökmeye neden olan yükler çok az alan içerdiğinden `MaxAllowedFields=2048` sınırı yardımcı olmaz. 12.22.7, 13.9.16, 14.3.1 ve 15.1.14 versiyonlarındaki düzeltme, `ParserOptions` kısmına güvenli bir varsayılan değere sahip `MaxAllowedRecursionDepth` seçeneği ekler ve bunu tüm özyinelemeli ayrıştırıcı yöntemlerinde (`ParseSelectionSet`, `ParseValueLiteral`, `ParseObject`, `ParseList`, `ParseTypeReference` vb.) uygular. Sınır aşıldığında, yığının taşması yerine yakalanabilir bir `SyntaxException` fırlatılır. Uygulama düzeyinde bir geçici çözüm yoktur. .NET'te `StackOverflowException` yakalanamaz. Tek hafifletme yöntemi yamalı bir versiyona yükseltmektir. Operatörler, ters proxy veya yük dengeleyici katmanında HTTP istek gövdesi boyutunu sınırlayarak riski azaltabilir (ancak tamamen ortadan kaldıramaz); ancak çökmeye neden olan en küçük yük (40 KB), çoğu varsayılan gövde boyutu sınırının oldukça altındadır ve yüksek derecede sıkıştırılabilir (gzip ile yaklaşık birkaç yüz bayt).
Nasıl düzeltilir
- HotChocolate.Language12.22.7, 13.9.16, 14.3.1, 15.1.14 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| HotChocolate.LanguageNuGet | v < 12.22.7, 13.0.0 ≤ v < 13.9.16, 14.0.0 ≤ v < 14.3.1, 15.0.0 ≤ v < 15.1.14 | 12.22.7, 13.9.16, 14.3.1, 15.1.14 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.