Google’ın Brotli sıkıştırma kütüphanesinde bulunan kritik bir zafiyet, kısa sürede yazılım dünyasının geniş bir kesiminde yama telaşı başlattı. CVE-2026-111497 olarak izlenen ve Node2Shell (HTTP2Shell ya da Broccoli2Shell olarak da anılıyor) adı verilen açık; Node.js, Microsoft .NET, Visual Studio, PowerShell ve popüler Python paketleri için güvenlik güncellemelerine yol açtı.
Zafiyeti ilginç kılan şey, tek bir ürünün değil, görünmez bir yapı taşının hatası olması. Brotli, web trafiğini sıkıştırmak için tarayıcılardan sunuculara, çalışma zamanlarından arşiv araçlarına kadar sayısız yazılımın içine gömülü. Bu yüzden asıl soru “Brotli kullanıyor muyuz?” değil, “Brotli’yi farkında olmadan nerelerde kullanıyoruz?”
Zafiyet nedir, nasıl çalışır?
Node2Shell, Brotli’nin kod çözücüsündeki (decoder) sınır dışı yazma (out-of-bounds write) hatasıdır. Özel olarak hazırlanmış sıkıştırılmış bir veri, kod çözücünün kullandığı tamponun sınırlarının ötesine veri yazdırabilir. Bellek bozulmasına yol açan bu tür hatalar, doğru koşullarda uzaktan kod çalıştırmaya (RCE) dönüşebilir.
- Etkilenen Brotli sürümleri: 1.0.3 ile 1.2.0 arası
- Önem derecesi: Google’a göre CVSS v4 9,2 (kritik); Microsoft’a göre CVSS v3.1 8,1 (yetki yükseltme)
- Keşif: OpenAI Codex Security ekibi, kırmızı takım çalışmaları sırasında buldu
Dikkat çekici bir ayrıntı: OpenAI’ye göre kök hata, Brotli kaynak kodunda şubat ayında, henüz bir güvenlik açığı olduğu anlaşılmadan düzeltilmişti. Ancak bu düzeltmeyi içeren yeni bir sürüm yayımlanmadığı için aşağı akıştaki projeler savunmasız kaldı. Açık kaynak tedarik zincirinde “düzeltildi” ile “kullanıcıya ulaştı” arasındaki farkın ne kadar büyük olabileceğinin iyi bir örneği.
Kimler etkileniyor, hangi sürümler güvenli?
- Brotli kütüphanesi: 1.0.10, 1.1.1, 1.2.1
- Node.js: 22.23.4, 24.22.1, 26.12.1 (Ekim 2026 güvenlik sürümleri)
- .NET çalışma zamanı: 8.0.33, 9.0.22, 10.0.14 ve .NET 11 RC3
- Visual Studio: 2019, 2022 ve 2026 güncellemeleri
- PowerShell: 7.4, 7.5, 7.6 güncellemeleri
- Python (PyPI): Brotli 1.2.1, brotlicffi 1.2.1.0
Bun, Envoy ve Istio da güncelleme yayımladı. Topluluk tarafından tutulan bir takip listesine göre DuckDB, Apache Arrow, 7-Zip-zstd, p7zip ve EDK II gibi projelerde henüz yama yoktu; listenin eksik olduğu da belirtiliyor. Node.js 20 için düzeltme yayımlanmadı; bu sürüm desteği bittiği için yükseltilmesi gerekiyor.
Microsoft, açığı .NET ve Visual Studio için kritik, PowerShell için önemli olarak sınıflandırdı ve istismar değerlendirmesini “Exploitation More Likely” (istismar olasılığı yüksek) olarak işaretledi.
İstismar durumu: Gerçek risk ne kadar?
Haberin yayımlandığı tarihte sahada doğrulanmış bir istismar raporlanmamıştı. Bununla birlikte tablo rahatlatıcı değil:
- Imperva, resmi Node.js 24.22.0 Linux arm64 imajında, Express 5 veya body-parser 2 tarafından işlenen bir istek gövdesi ya da sunucu yanıtı üzerinden kod çalıştırmayı gösterdi. İstismar kodu yayımlanmadı ve her denemede başarılı olmadı.
- GitHub’da paylaşılan bir kavram kanıtı (PoC) yalnızca bilerek zayıflatılmış bir derlemede kod çalıştırabiliyor; bazı araştırmacılar gerçek sistemlerde etkisinin hizmet engellemeyle (DoS) sınırlı olduğunu savunuyor.
Bu ayrıntılar önemli, ama karar vermek için yeterli değil. Bellek bozulması hatalarında güvenilir istismar geliştirmek zaman alır; ancak öncü yapay zeka modellerinin zafiyet bulma ve istismar geliştirme hızını artırdığı bir dönemde bu süre hızla kısalıyor. PHP zafiyetlerinde de “henüz istismar yok” aşamasından çalışan saldırılara geçiş yalnızca günler sürdü.
Neden bu kadar yaygın? Görünmez bağımlılık sorunu
Brotli; HTTP yanıtlarındaki Content-Encoding: br sıkıştırmasından, sıkıştırılmış dosya ve arşiv işlemeye kadar pek çok yerde devrede. Saldırganın ihtiyaç duyduğu tek şey, kontrol ettiği sıkıştırılmış veriyi bir Brotli kod çözücüsüne ulaştırmak. OpenAI’nin “Patch the Planet” açıklamasındaki ifadeyle, saldırgan denetimindeki veriyi etkilenen bir Brotli kod çözücüsüne geçiren her uygulama risk altında olabilir. Tipik senaryolar:
- Sıkıştırılmış HTTP istek gövdelerini açan web uygulamaları ve API’ler
- Güvenilmeyen sunuculardan gelen yanıtları işleyen istemciler, tarayıcı otomasyonları ve entegrasyonlar
- Kullanıcıdan gelen sıkıştırılmış dosyaları açan iş akışları
Bu kütüphane çoğu zaman doğrudan değil, bir çalışma zamanının ya da üçüncü taraf paketin içinden geliyor. Konteyner imajlarında ve hazır yazılımlarda ise varlığından haberdar bile olunmayabiliyor.
Kurumlar için 6 adımlık eylem planı
1. Görünmeyen Brotli kopyalarını bulun
Yazılım envanterinizi (SBOM) ve bağımlılık ağaçlarınızı Brotli, brotlicffi ve gömülü kopyalar için tarayın. İnternete açık uygulamalarınızı öncelikli listenin başına koyun. Cortex Xpanse gibi saldırı yüzeyi yönetimi çözümleri, dışarıdan erişilebilen ve kurumun haberdar olmadığı varlıkları da görünür kılar.
2. Çalışma zamanlarını ve paketleri güncelleyin
Node.js, .NET, PowerShell, Visual Studio ve Python paketlerini yukarıdaki yamalı sürümlere yükseltin. Desteği biten sürümleri (ör. Node.js 20) bu fırsatla güncel bir LTS sürümüne taşıyın.
3. Servisleri yeniden başlatın
Paketi güncellemek yetmez: çalışan süreçler, yeniden başlatılana kadar eski ve savunmasız kodu kullanmaya devam eder. Güncellemeden sonra ilgili tüm servisleri yeniden başlatın.
4. Konteyner imajlarını yeniden oluşturun
Konteynerler, oluşturuldukları andaki kütüphaneleri taşır. Yamalı bir temel imaj (base image) üzerine imajları yeniden derleyip yeniden dağıtın; kayıt defterinizdeki (registry) eski imajları da tarayın. Cortex Cloud gibi koddan buluta güvenlik platformları, savunmasız paket içeren imajları yayına çıkmadan yakalamaya yardımcı olur.
5. Güvenilmeyen sıkıştırılmış veriyi işleyen noktaları gözden geçirin
Sıkıştırılmış istek gövdesi kabul eden API’lerin gerçekten buna ihtiyaç duyup duymadığını değerlendirin. Gerekmiyorsa ters vekil (reverse proxy) veya uygulama katmanında devre dışı bırakın; istek boyutu sınırları belirleyin.
6. Yama süresince ağ katmanında koruma ekleyin
Tüm sistemleri aynı anda yamalamak çoğu kurumda mümkün değil. Bu arada Palo Alto Networks Advanced Threat Prevention gibi satır içi (inline) önleme katmanları, istismar girişimlerine karşı sanal yama etkisi sağlayabilir. İlgili imzaların kapsamını ve profillerinizin “engelle” modunda olduğunu kontrol edin.
Albisec’in değerlendirmesi
Node2Shell, modern yazılımın ne kadar derin bağımlılık zincirleri üzerine kurulduğunu bir kez daha gösteriyor. Tek bir sıkıştırma kütüphanesindeki hata; çalışma zamanlarını, geliştirme araçlarını, servis ağı bileşenlerini ve veri platformlarını aynı anda etkileyebiliyor. Bu tabloda kalıcı çözüm, tek seferlik yama telaşı değil: güncel bir yazılım envanteri, otomatik imaj yenileme ve yama süresini kapatan ağ katmanı koruması birlikte işlediğinde risk yönetilebilir hale geliyor.
Albisec olarak internete açık uygulamalarınızın envanterini çıkarmanıza, Palo Alto Networks Advanced Threat Prevention profillerinizi gözden geçirmenize ve yama önceliklendirmesi yapmanıza yardımcı olabiliriz. Bizimle iletişime geçin veya destek talebi oluşturun.
Kaynaklar: SecurityWeek, “Node2Shell: Brotli Flaw Triggers Patching Across Microsoft, Node.js, Python Packages”, Eduard Kovacs, 26 Ekim 2026; Node.js Ekim 2026 güvenlik sürümleri. Görsel: Albisec.




