Bir uygulama normal HTTPS trafiği alırken, kullanıcıların sağladığı Brotli verilerini açıyorsa tehlikeli girdileri de işliyor olabilir. Microsoft, 25 Ekim 2026’da Brotli kod çözücüsündeki arabellek taşmasını gidermek için plansız .NET güncellemeleri yayımladı; güvenlik açığı CVE-2026-111497 olarak tanımlandı. Node.js de aynı güvenlik açığına yönelik düzeltmeyi 21 Ekim’de ayrı bir güvenlik sürümüne ekledi. Geliştiricilerin ilk adımı, dışarıdan gelen verilerin kod çözücüye ulaştığı yolu bulmak, ardından çalışma zamanını güncelleyip uygulamayı yeniden derlemek veya yeniden başlatmaktır.

Microsoft’un açıklamasına göre .NET’teki güvenlik açığı, kimlik doğrulaması yapmamış bir saldırganın işlem belleğini okumasına veya bozmasına olanak tanıyabilir; bu da veri ifşasına, hizmet reddine ya da ayrıcalık yükseltmeye yol açabilir. .NET 8, 9 ve 10 ile .NET 11 Release Candidate 3 için düzeltmeler yayımlandı. .NET 8 için belirtilen sürümler runtime 8.0.33 ve SDK 8.0.133 veya 8.0.427’dir. .NET Framework bu güvenlik açığından etkilenmemektedir.
Risk hangi durumlarda ortaya çıkar?
Uygulama, güvenilmeyen bir Brotli akışını güvenlik açığı bulunan bir kod çözücüye aktardığında risk oluşur. .NET’te bu, ASP.NET Core istek açma işlevinin, HttpClient üzerinden yanıtların otomatik açılmasının veya BrotliStream ve BrotliDecoder gibi System.IO.Compression API’lerinin doğrudan kullanılmasının sonucunda meydana gelebilir. .NET güvenlik duyurusu bu yolları sıralıyor ve gelen isteklerin açılmasının ve yanıtların otomatik açılmasının varsayılan olarak devre dışı olduğunu belirtiyor.
Paket envanteri çıkarmak, denetimin yalnızca başlangıcıdır. Middleware ve HTTP istemcisi yapılandırmalarını, kod çözücüye yapılan doğrudan çağrıları ve sıkıştırılmış veri kabul eden üçüncü taraf bileşenleri bulun. Bu verilerin istemcilerden, webhook’lardan, proxy’lerden veya harici API’lerden gelip gelmediğini; açma işleminden önce boyut ve işlem süresi sınırlamalarının uygulanıp uygulanmadığını belirleyin. Böylece güvenlik açığı bulunan kodun dışarıdan denetlenebilen verilere hangi noktalarda eriştiğini saptayabilirsiniz.
.NET’i güncelleme
Kullandığınız dal için güncellemeyi yükleyin: .NET 8 — 8.0.33, .NET 9 — 9.0.22, .NET 10 — 10.0.14; .NET 11 için Release Candidate 3. Framework-dependent uygulamalarda güncel runtime’ı kurup uygulamayı yeniden başlatın. Self-contained uygulamaların yeniden derlenip yayımlanması gerekir: ana makinedeki runtime güncellemesi, uygulamaya eklenmiş kopyanın yerine geçmez. Kapsayıcıları güncel .NET imajlarıyla yeniden derleyip dağıtın.
NativeAOT için de yeniden yayımlarken güncel SDK’ları ve runtime paketlerini kullanın. Düzeltmeyi henüz dağıtamıyorsanız, güvenilmeyen veri kabul ettiği belirlenen giriş yollarında Brotli’yi geçici olarak devre dışı bırakın. Sıkıştırılmış gövdeler gönderen istemcilerin işleyişinin değişebileceğini göz önünde bulundurarak normal istekleri ve entegrasyonları test edin.
Node.js’i ve sistem bağımlılıklarını kontrol edin
Node.js projesi güvenlik açığını 21 Ekim’de duyurdu: Node.js 22.x, 24.x ve 26.x sürümlerinde yerleşik Brotli kod çözücüsü etkileniyor. Node.js güvenlik sürümü duyurusunda sırasıyla 22.23.4, 24.22.1 ve 26.12.1 sürümleri düzeltilmiş olarak belirtiliyor. Kullandığınız desteklenen dalı güncelleyin ve hizmeti yeniden başlatın. Projenin açıklamasına göre sorun, uygulamanın node:zlib kullanarak saldırganın sağladığı verileri açması durumunda ortaya çıkıyor; bellek bozulması uygulamanın çökmesine, bellek içeriğinin ifşasına veya uzaktan kod yürütülmesine yol açabilir.
Ayrıca sistemdeki Node.js veya .NET kurulumundan ayrı olarak sağlanan bağımlılıkları da kontrol edin. Kapsayıcılardaki ve derleme çıktılarındaki Brotli sürümlerini karşılaştırın, ardından dağıtımdan sonra kontrolü tekrarlayın. CI sürecinde güncellenmiş temel imajı sabitleyin ve güvenlik açığı bulunan kitaplıkların sürümlerini olağan derleme sürecinde denetleyin.
İzlenecek kısa adımlar
- Brotli kullanan uygulamaları, SDK’ları, runtime’ları, kapsayıcıları ve NativeAOT derlemelerini listeleyin.
- Dışarıdan gelen verilerin otomatik veya doğrudan kod çözme işleminden geçtiği noktaları bulun.
- .NET’i, Node.js’i ve ayrı olarak sağlanan kitaplıkları düzeltilmiş sürümlere güncelleyin; bağımsız uygulamalarla kapsayıcıları yeniden derleyin.
- İşlemleri yeniden başlatın ve sürümleri yalnızca proje dosyalarında değil, çalışan ortamda da doğrulayın.
- Düzeltme dağıtılana kadar, belirlenen güvenlik açığı bulunan yollarda güvenilmeyen Brotli girdilerinin işlenmesini sınırlayın.
Öncelik, iki etkenin birleşimine bağlıdır: güvenlik açığı bulunan bir bileşenin varlığı ve bu bileşene özel hazırlanmış sıkıştırılmış bir akış gönderilebilmesi. Güncelleme hatayı giderir; giriş yollarının haritası ise düzeltmenin çalışan süreçlere, bağımsız derlemelere ve kapsayıcılara ulaştığını doğrulamaya yardımcı olur.