Kritik HTTP2Shell (Brotli) Güvenlik Açığı İnternet Altyapısında Acil Yamaları Tetikledi

5 dakika
Paylaş:
Kritik HTTP2Shell (Brotli) Güvenlik Açığı İnternet Altyapısında Acil Yamaları Tetikledi - blog yazısı görseli
Özet

Modern web trafiğinin temel taşlarından biri olan Google Brotli veri sıkıştırma kütüphanesinde keşfedilen ve HTTP2Shell (Node2Shell / Broccoli2Shell) olarak adlandırılan CVE-2026-111497 kodlu kritik bellek taşması açığı, küresel yazılım ekosisteminde acil güncelleme seferberliği başlattı.

Modern internet mimarisinin görünmez kahramanlarından biri olan veri sıkıştırma algoritmaları, her gün milyarlarca HTTP isteğinin ve yanıtının hızla iletilmesini sağlıyor. Ancak bu temel katmanlardan birinde ortaya çıkan kritik bir güvenlik zafiyeti, tüm küresel web ekosistemini aynı anda tehdit edebiliyor. Google tarafından geliştirilen açık kaynaklı Brotli sıkıştırma kütüphanesinde tespit edilen ve siber güvenlik dünyasında HTTP2Shell (ilk aşamalarda Node2Shell veya Broccoli2Shell) olarak adlandırılan CVE-2026-111497 kodlu kritik güvenlik açığı, teknoloji devlerini ve açık kaynak topluluklarını acil yamalar yayınlamaya zorladı.

CVSS v4.0 ölçeğinde 9.2 (Kritik) önem derecesiyle derecelendirilen bu zafiyet, yalnızca web sunucularını değil; arka planda çalışan API istemcilerini, mikroservisleri, bulut vekil sunucularını (proxy) ve geliştirici araçlarını doğrudan hedef alıyor.

HTTP2Shell (CVE-2026-111497) Nedir ve Nasıl Çalışır?

Temelinde bir sınır dışı yazma (out-of-bounds write / buffer overflow - CWE-787) zafiyeti olan CVE-2026-111497, Brotli'nin C tabanlı sıkıştırma çözücü (decoder) kütüphanesinin blok tipi geçişlerini işleme mantığındaki kritik bir hatadan kaynaklanıyor.

Normal şartlarda Brotli çözücüsü, sıkıştırılmış bir veri akışını (stream) okurken veri blokları arasındaki geçişleri denetler. Ancak saldırgan tarafından özel olarak hazırlanmış bozuk bir Brotli veri akışı, blok tipleri arasında geçersiz bir geçiş sinyali gönderdiğinde savunmasız çözücü bunu kalıcı bir format hatası olarak işaretlemek yerine "daha fazla girdi verisi bekleniyor" şeklinde geçici bir durum olarak yorumluyor.

Bu mantık hatası sonucunda akış çözücüsü, gelen baytları yalnızca 8 baytlık küçük bir dahili tampon belleğe (internal buffer) eklemeye devam ediyor. Sınır kontrolü aşıldığı için gelen veriler tampon belleğin dışına taşarak komşu bellek alanlarının üzerine yazılıyor. Uygulamanın çalışma zamanı (runtime) mimarisine bağlı olarak bu bellek bozulması şu üç yıkıcı sonuca yol açabiliyor:

  • Uzaktan Kod Çalıştırma (RCE): Saldırganın bellek yapısını manipüle ederek hedef sunucu veya istemci üzerinde doğrudan keyfi kod çalıştırması.
  • Hassas Veri Sızıntısı (Information Disclosure): İşçi süreçlerin (worker processes) belleğinde bulunan API anahtarları, oturum belirteçleri (token), parolalar veya özel verilerin sızdırılması.
  • Hizmet Reddi (DoS): Uygulama süreçlerinin veya tüm web sunucusunun beklenmedik şekilde çökmesi (crash/panic).

Neden Node2Shell'den HTTP2Shell'e Dönüştü?

Güvenlik araştırmacıları zafiyeti ilk olarak Node.js çalışma zamanında (node:zlib ve yerleşik fetch() modülleri üzerinden) keşfettiği için açık ilk günlerde Node2Shell adıyla anıldı. Ancak yapılan derinlemesine incelemeler, sorunun Node.js'e özgü olmadığını; doğrudan Google'ın C tabanlı referans Brotli kütüphanesinin 1.0.3 ile 1.2.0 arasındaki tüm sürümlerinde yer aldığını ortaya koydu.

Brotli algoritması günümüzde HTML, CSS, JavaScript ve JSON API trafiğini sıkıştırmak için standart olarak (Content-Encoding: br veya Accept-Encoding: br) kullanıldığından, etki alanı bir anda tüm HTTP ekosistemine yayıldı. Bu geniş çaplı yıkım potansiyeli nedeniyle zafiyet HTTP2Shell (ve topluluk içinde esprili bir dille Broccoli2Shell) olarak yeniden adlandırıldı.

Üstelik güvenlik dünyasını şaşırtan önemli bir detay daha ortaya çıktı: Hatayı düzelten kod değişikliği aslında aylar önce Brotli'nin kaynak kod deposuna eklenmişti. Ancak o dönemde bu düzeltmeye herhangi bir güvenlik bildirimi (security advisory) veya CVE kodu eşlik etmediği için Node.js, Python ve .NET gibi alt ekosistemler bu yamayı kendi kütüphanelerine dahil etmemişti. İstismar vektörünün keşfedilmesiyle birlikte tüm yazılım dünyasında acil bir yama yarışı başladı.

Etkilenen Ekosistemler ve Saldırı Yüzeyi

HTTP2Shell açığını geleneksel sunucu zafiyetlerinden daha tehlikeli kılan en önemli unsur, hem gelen (inbound) hem de giden (outbound) HTTP trafiğini etkilemesidir.

1. Web Sunucuları ve API Ağ Geçitleri: İstemciden gelen Brotli ile sıkıştırılmış HTTP istek gövdelerini otomatik olarak açan sunucular doğrudan risk altındadır. 2. HTTP İstemcileri ve Arka Plan Servisleri: Birçok modern HTTP istemcisi (fetch, requests, httpx, urllib3), sunuculara varsayılan olarak Accept-Encoding: br başlığı gönderir. Eğer uygulamanız kullanıcı tarafından verilen bir URL'yi tarıyor, webhook çağrısı yapıyor, RSS beslemesi okuyor veya bağlantı önizlemesi (link preview) oluşturuyorsa; saldırganın kontrolündeki kötü niyetli bir sunucu, sıkıştırılmış zararlı yanıt döndürerek uygulamanızı anında istismar edebilir.

Zafiyetten doğrudan etkilenen başlıca teknoloji yığınları şunlardır:

  • Node.js ve Bun: Yerleşik zlib ve fetch bileşenleri üzerinden doğrudan etkilenir.
  • Python Ekosistemi: brotli ve brotlicffi paketlerini kullanan urllib3, requests, aiohttp ve httpx gibi popüler kütüphaneler.
  • Microsoft ve .NET: .NET çalışma zamanları, PowerShell ve Visual Studio bileşenleri.
  • Vekil Sunucular ve Bulut Altyapıları: Envoy, Istio ve Go tabanlı çeşitli web çatıları (Traefik, Fiber, fasthttp).

Acil Yamalar ve Korunma Yöntemleri

ABD Siber Güvenlik ve Altyapı Güvenliği Ajansı (CISA) dahil olmak üzere birçok güvenlik kurumu, aktif istismar riskine karşı geliştiricileri ve sistem yöneticilerini derhal güncelleme yapmaya çağırdı. Sistemlerinizi güvence altına almak için uygulanması gereken sürümler şunlardır:

  • Google Brotli Kütüphanesi: 1.0.10, 1.1.1 veya 1.2.1 sürümlerine yükseltilmelidir.
  • Node.js: Acil olarak yayınlanan 22.23.4, 24.22.1 veya 26.12.1 güvenlik sürümlerine güncellenmelidir.
  • Python: brotli paketi 1.2.1 sürümüne, brotlicffi paketi ise 1.2.1.0 sürümüne yükseltilmelidir.
  • Microsoft / .NET: Microsoft tarafından yayınlanan acil güvenlik güncellemeleri tüm sunucu ve geliştirici ortamlarına uygulanmalıdır.

DevOps ve Güvenlik Ekipleri İçin Kritik Uyarı

Güvenlik uzmanları, yalnızca Web Uygulama Güvenlik Duvarı (WAF) kurallarına güvenilmemesi gerektiği konusunda uyarıyor. Bir WAF, dışarıdan sunucunuza gelen sıkıştırılmış istekleri filtreleyebilse de; sunucunuzun dış dünyadaki bir API'ye veya üçüncü taraf bir adrese yaptığı giden (outbound) HTTP isteklerinden dönen zararlı Brotli yanıtlarını engelleyemez.

Bu nedenle tüm konteyner imajlarının (Docker/Kubernetes) yamalı çalışma zamanlarıyla yeniden derlenmesi, bağımlılık ağaçlarının (package-lock.json, pnpm-lock.yaml, requirements.txt) taranması ve çalışan uygulama süreçlerinin güncellenerek yeniden başlatılması hayati önem taşıyor.

Benzer Konudaki Yazılar