Google'ın Brotli Açığı Yalnızca Node.js'i Değil Python, Bun ve Envoy'u da Tehdit Ediyor
Google'ın Brotli sıkıştırma çözücüsünde tespit edilen bellek bozulması açığı, kötü amaçlı veri işlendiğinde saldırganların sisteme kod yürütmesine kapı aralayabilir. Node.js, Bun, Python paketleri ve Envoy gibi yazılımları etkileyen açık için güncellemeler ürün bazında yayımlanıyor.
The Hacker News'in aktardığına göre, Google'ın web genelinde yaygın olarak kullanılan Brotli sıkıştırma formatının çözücüsünde kritik bir güvenlik açığı keşfedildi. CVE-2026-111497 olarak tanımlanan bellek bozulması hatası, yalnızca Node.js'i değil; JavaScript çalışma ortamı Bun'u, Python için geliştirilen Brotli ve brotlicffi paketlerini ve Brotli açma özelliği etkinleştirilmiş Envoy vekil sunucularını da kapsıyor.
Açık, saldırganın kontrolündeki Brotli verisinin işlendiği durumlarda tetikleniyor. Node.js ve Bun ortamlarında, yerleşik fetch() fonksiyonunun 'Content-Encoding: br' başlığıyla gelen yanıtları okuması veya Express 5 gibi kütüphanelerin istek gövdesini açması halinde tehlike oluşuyor. Python tarafında ise risk daha sinsi: İlgili paketlerin yalnızca kurulu olması yeterli. requests, urllib3, httpx ve aiohttp gibi yaygın HTTP istemcileri bu paketleri otomatik olarak kullandığı için, uygulama kodu hiç Brotli'yi içe aktarmasa bile sistem saldırıya açık hale gelebiliyor.
İstismar Durumu ve Şiddet Puanları
Imperva araştırmacıları, Node2Shell adını verdikleri çalışmada yamasız Node.js 24.22.0 sürümü üzerinde (Linux ARM64 mimarisinde) uzaktan kod yürütme elde etti. Bu istismar hem getirilen bir yanıt hem de Express istek gövdesi yoluyla başarıyla gösterildi. Ancak bu gösterim diğer yazılımlar üzerinde tekrarlanmadı ve şu ana kadar gerçek dünyada aktif bir saldırı raporlanmadı. CISA'nın 23 Ekim tarihli değerlendirmesi istismarı 'yok' olarak kaydetti. Şiddet puanları kurumlara göre değişiyor: Google açığı CVSS 4.0 ölçeğinde 9.2 (Kritik) olarak değerlendirirken, Red Hat 8.1 (Önemli), Node.js ekibi ise 'Yüksek' olarak sınıflandırıyor.
Açığın düzeltilme süreci de dikkat çekici. Kapatmaya yönelik kod değişikliği 27 Şubat'ta Brotli'nin kaynak koduna eklenmişti ancak bu değişikliğin bir güvenlik açığını giderdiği o dönemde bilinmediği için yeni bir Brotli sürümü yayımlanmadı. Bu nedenle düzeltmeler, 21 Ekim'deki resmi duyurunun ardından ürün bazında dağıtılmaya başlandı. Örneğin Debian 13 düzeltmeyi 23 Ekim'de yayımlarken, Amazon Linux 2023'te ilgili paketler 22 Ekim itibarıyla hâlâ yama bekliyordu.
Korunma Yöntemleri ve Tarayıcı Kör Noktaları
Bu açığa karşı en etkili çözüm, yazılımları yamalı sürümlere güncellemek ve çalışan süreçleri yeniden başlatmaktır çünkü çalışan bir süreç eski çözücüyü bellekte tutmaya devam eder. Güncelleme yapılamayan sistemlerde ise güvenilmeyen Brotli içeriğinin işlenmesini durdurmak gerekiyor. Vekil sunucuların gövdeyi ayrıştırmadan önce 'Content-Encoding: br' başlıklı istekleri reddetmesi öneriliyor. Python tarafında Brotli paketlerinin kaldırılması, istemcilerin gzip gibi alternatif sıkıştırma yöntemlerine geri dönmesini sağlıyor. İstemcinin Accept-Encoding başlığından 'br' değerini kaldırmanın tek başına koruma sağlamadığının altı çiziliyor; çünkü sunucu, istemcinin talebine bakmaksızın Brotli ile sıkıştırılmış veri gönderebilir.
Geliştiricilerin dikkatli olması gereken bir diğer nokta, bağımlılık tarayıcılarının bu açığı gözden kaçırabilmesi. CVE kaydı Python paketlerini doğrudan işaret etmediği için Dependabot gibi araçların okuduğu GitHub danışma listesinde etkilenen paket bulunmuyor. İki Python paketi için danışma kayıtları 23 Ekim'de eklenmiş olsa da, sistem yöneticilerinin kurulu sürümleri manuel olarak kontrol etmesi öneriliyor.