Google'ın Brotli sıkıştırma kütüphanesinde tespit edilen CVE-2026-111497 açığı; Node.js, Bun, Python paketleri ve Envoy proxy'lerini etkiliyor. Imperva araştırmacıları, açığın yamalanmamış bir Node.js derlemesinde uzaktan kod çalıştırılmasına olanak tanıdığını gösterdi.
Yazılım ve Uygulamalar
Admin3 okunma

Brotli Kod Çözücüsündeki Güvenlik Açığı Node.js, Bun ve Python'u Etkiliyor

Google'ın Brotli sıkıştırma kütüphanesinde tespit edilen CVE-2026-111497 açığı; Node.js, Bun, Python paketleri ve Envoy proxy'lerini etkiliyor. Imperva araştırmacıları, açığın yamalanmamış bir Node.js derlemesinde uzaktan kod çalıştırılmasına olanak tanıdığını gösterdi.

Brotli Kod Çözücüsündeki Güvenlik Açığı Node.js, Bun ve Python'u Etkiliyor

Haber detayı

Google'ın Brotli sıkıştırma kütüphanesinin C dilinde yazılmış kod çözücü bileşeninde keşfedilen bir bellek bozulması açığı, bu kütüphaneyi kullanan çok sayıda yazılımı tehdit ediyor. CVE-2026-111497 olarak kayıt altına alınan açık; Node.js, Bun, Python'un Brotli ve brotlicffi paketleri ile Brotli açma özelliği etkinleştirilmiş Envoy proxy'lerini kapsıyor. Imperva güvenlik araştırmacıları, açığın yamalanmamış bir Node.js derlemesinde saldırgan kontrolündeki kodun çalıştırılmasına zemin hazırladığını kanıtladı. Gerçek dünyada herhangi bir saldırı vakası henüz raporlanmadı.

Açık Nasıl Çalışıyor?​

Açık, Brotli ile sıkıştırılmış bir veri akışını açarken arabelleğin sınırlarının aşılmasına ve programın belleğinin bozulmasına yol açıyor. Bu durum çökmeye, bellek sızıntısına ya da saldırgan tarafından belirlenen kodun çalıştırılmasına neden olabilir. Sorun, Google'ın Brotli C kütüphanesinin içinde yer aldığından ve her yazılım bu kütüphanenin kendi kopyasını paketlediğinden, etkilenen her ürünün güncellemeyi bağımsız olarak yapması gerekiyor.
OpenAI'ın Codex Güvenlik ekibi açığı raporlayan taraf olarak açıklamalarında, güvenlik zafiyetinin iki yönlü çalıştığını belirtti: Sıkıştırılmış girdi kabul eden yamalanmamış bir sunucu kötü niyetli bir istemci tarafından ele geçirilebilirken, sıkıştırılmış girdi kabul eden yamalanmamış bir istemci de kötü niyetli bir sunucu tarafından ele geçirilebilir. Bunun yanı sıra açığın kimlik doğrulaması gerektirmeksizin uzaktan kod çalıştırılmasına olanak tanıdığı ifade edildi.

Hangi Yazılımlar Etkileniyor?​

Açıktan etkilenen ve düzeltilmiş sürümleri içeren yazılımların listesi şöyle:
  • Google Brotli (C kütüphanesi): 1.0.3 ile 1.2.0 arası sürümler etkileniyor; 1.0.10, 1.1.1 ve 1.2.1 sürümleriyle giderildi.
  • Node.js: 22.x, 24.x ve 26.x sürümlerinin yamasız halleri ile kullanım ömrü sona eren 20.x ve öncesi etkileniyor; 22.23.4, 24.22.1 ve 26.12.1 sürümleriyle giderildi.
  • Bun: 1.4.3 ve öncesi etkileniyor; 1.4.4 sürümüyle giderildi.
  • Envoy: 1.39.2, 1.38.5, 1.37.7 ve 1.36.11 sürümleri etkileniyor; yalnızca Brotli açma filtresi yapılandırılmışsa risk oluşuyor.
  • Istio: 1.31.0-1.31.1, 1.30.0-1.30.5 ve 1.29.0-1.29.8 sürümleri etkileniyor; Brotli açma özelliği etkinleştirilmişse risk söz konusu.
  • Python Brotli: 1.2.0 ve öncesi etkileniyor; 1.2.1 ile giderildi.
  • Python brotlicffi: 1.2.0.x ve öncesi etkileniyor; 1.2.1.0 ile giderildi.
  • cdxgen: 13.4.0 ve 12.8.8 dahil önceki sürümler etkileniyor; 13.5.0 ve 12.8.9 ile giderildi.
\nNode.js ve Bun'da risk, yerleşik fetch() işlevinin Content-Encoding: br başlıklı bir yanıt okuması ya da Express 5 ve body-parser 2 gibi istek gövdesi işleme araçlarının Brotli ile sıkıştırılmış bir yüklemeyi açmaya çalışması durumunda ortaya çıkıyor. Düz bir Node.js HTTP sunucusu istek gövdelerini kendi başına açmıyor. Envoy ve Istio'da ise açık yalnızca Brotli açma özelliği etkinleştirildiğinde erişilebilir hale geliyor. Python'da ise Brotli veya brotlicffi paketinin yüklü olması tek başına yeterli; requests, urllib3, httpx ve aiohttp gibi HTTP istemcileri bu paketler kuruluysa Brotli yanıtlarını otomatik olarak açıyor ve uygulama kendi kodunda Brotli'yi hiç içe aktarmasa bile risk oluşabiliyor.

Imperva'nın Kanıtladığı Senaryo​

Imperva'nın Kırmızı Takımı, Node2Shell adını verdiği çalışması kapsamında ARM64 mimarisinde Linux üzerinde çalışan yamalanmamış Node.js 24.22.0 derlemesinde saldırgan tarafından sağlanan kodu başarıyla çalıştırdı. Kod, hem alınan bir yanıt hem de Express istek gövdesi olarak iletildi. Saldırının birkaç deneme gerektirdiği ve diğer derlemeler üzerinde test edilmediği belirtildi; exploit henüz kamuoyuyla paylaşılmadı. Aynı durum listedeki diğer yazılımlarda kanıtlanamadı.
CISA'nın 23 Ekim tarihli değerlendirmesi, açığın gerçek dünyada istismar edilmediğini ve otomatik saldırı araçlarının bulunmadığını kaydetti. Red Hat ise güvenilir ve kamuya açık bir kavram kanıtı istismarının mevcut olmadığını açıkladı. Öte yandan ciddiyet puanları kaynağa göre farklılık gösteriyor: Google açığı CVSS 4.0 ölçeğinde 9,2 ile kritik olarak değerlendirirken Node.js yüksek, Red Hat ise 8,1 ile önemli olarak nitelendirdi.

Açığın Geçmişi ve Düzeltmenin Gecikmesi​

Açığı kapatan değişiklik, Brotli kaynak koduna 27 Şubat tarihinde eklendi; ancak bu değişikliği içeren yeni bir Brotli sürümü 21 Ekim'e kadar yayımlanmadı. OpenAI'ın açıklamasına göre söz konusu düzeltme Şubat ayında yapılmış olsa da o dönemde bunun bir güvenlik açığına yol açtığı bilinmiyordu ve daha yeni bir Brotli sürümü çıkmamıştı. Açık ilk olarak 21 Ekim'de kamuoyuna duyuruldu; Node.js ve Google aynı gün yamalarını yayımladı, diğer ürünler ise ardından birer birer güncelleme sundu. Node.js, açığı bildiren OpenAI Codex Güvenlik ekibinden Khai Tran ve Sylvie Mayer'e ve düzeltmeyi gerçekleştiren Matteo Collina ile Antoine du Hamel'e teşekkür etti.

Kullanıcılar Ne Yapmalı?​

Güvenlik uzmanları, etkilenen kullanıcılara yukarıdaki tabloya göre yamalı sürüme geçmelerini ve ardından servisi yeniden başlatmalarını ya da konteyner imajını yeniden oluşturmalarını öneriyor; çünkü çalışan bir süreç yeniden başlatılana kadar eski kod çözücüyü kullanmaya devam ediyor.
Güncelleme hemen yapılamıyorsa OpenAI'ın açıklama sayfası ve Aikido güvenlik firması şu geçici önlemleri tavsiye ediyor: Herhangi bir proxy ya da ayrıştırıcı gövdeyi açmadan önce Content-Encoding: br içeren gelen istekleri reddetmek; HTTP istemcilerinde otomatik Brotli açmayı kapatmak ve Brotli yanıtları açılmadan önce reddetmek. Python'da ise Brotli ve brotlicffi paketlerini kaldırmak, böylece istemcilerin gzip ve deflate yöntemlerine geri dönmesini sağlamak öneriliyor. Accept-Encoding başlığından br değerini kaldırmanın tek başına yeterli olmadığı vurgulanıyor; zira bir sunucu istemci ne isterse istesin Brotli formatında yanıt gönderebilir. Node.js için yayımlanmış herhangi bir geçici çözüm bulunmuyor; bu nedenle çalışma ortamını güncellemek tek seçenek olarak öne çıkıyor.
Sistem paket yöneticileri de güncellemelerini farklı zamanlarda yayımlıyor. Debian, brotli paketini Debian 13 (trixie) için 23 Ekim'de 1.1.0-2+deb13u1 sürümüyle düzeltti. Amazon Linux 2023 ise 22 Ekim itibarıyla brotli ve Node.js 24 paketleri için düzeltmeyi bekliyor olarak listeliyordu. Bağımlılık tarayıcılarının Python paketlerini henüz işaretlemeyebileceği de dikkat çekiyor: CVE kaydı PyPI paketlerini değil Google'ın Brotli deposunu kapsıyor ve GitHub'ın danışma belgesi etkilenen paketi henüz listelemiyor. Python paketlerine ilişkin PYSEC-2026-4322 ve PYSEC-2026-4323 danışma girişleri 23 Ekim'de eklendi; bu nedenle yüklü sürümlerin manuel olarak kontrol edilmesi öneriliyor.

Sıkça Sorulan Sorular​

CVE-2026-111497 açığı tam olarak hangi yazılımları etkiliyor?​

Açık; Google Brotli C kütüphanesini kullanan Node.js (22.x, 24.x, 26.x), Bun (1.4.3 ve öncesi), Python Brotli (1.2.0 ve öncesi), Python brotlicffi (1.2.0.x ve öncesi), Envoy, Istio ve cdxgen'i etkiliyor. Her yazılım, güvenlik açığını içeren Brotli kütüphanesinin kendi kopyasını barındırdığından bağımsız olarak güncellenmesi gerekiyor.

Node.js kullanıcıları bu açıktan nasıl etkileniyor?​

Node.js'te risk, yerleşik fetch() işlevinin Content-Encoding: br başlıklı bir yanıt okuması ya da Express 5 ve body-parser 2 gibi araçların Brotli ile sıkıştırılmış bir istek gövdesini açmaya çalışması durumunda ortaya çıkıyor. Düz bir Node.js HTTP sunucusu istek gövdelerini kendi başına açmadığından bu senaryoda risk oluşmuyor. Açık için Node.js'e özel bir geçici çözüm yayımlanmadı; çalışma ortamını güncellemek tek seçenek.

Python kullanıcıları Brotli paketini kullanmasa da risk altında mı?​

Evet. Python'da Brotli veya brotlicffi paketinin yüklü olması tek başına yeterli; requests, urllib3, httpx ve aiohttp gibi HTTP istemcileri bu paketler kuruluysa Brotli yanıtlarını otomatik olarak açıyor. Uygulama kendi kodunda Brotli'yi hiç içe aktarmasa bile risk oluşabiliyor.

Açığı kapatan değişiklik neden bu kadar geç fark edildi?​

OpenAI'ın açıklamasına göre açığı kapatan kod değişikliği Brotli kaynak koduna 27 Şubat'ta eklendi; ancak o dönemde bunun bir güvenlik açığına yol açtığı bilinmiyordu ve daha yeni bir Brotli sürümü de yayımlanmamıştı. Bu nedenle düzeltme 21 Ekim'e kadar resmi bir sürümde yer almadı.

Gerçek dünyada bu açığın istismar edildiğine dair bir kanıt var mı?​

Hayır. CISA'nın 23 Ekim tarihli değerlendirmesi gerçek dünyada istismarın gerçekleşmediğini ve otomatik saldırı araçlarının bulunmadığını kaydetti. Red Hat da güvenilir ve kamuya açık bir kavram kanıtı istismarının mevcut olmadığını belirtti. Imperva'nın Node.js üzerinde gerçekleştirdiği kod çalıştırma demosu ise kamuoyuyla paylaşılmadı ve diğer yazılımlarda test edilmedi.

Etiketler

Yorumlar (0)

Yorum yapmak için giriş yapmalısınız.

Geri
Üst