İçeriğe geç
edumintsBlog
Güvenlik3 dk okuma

Node2Shell, HTTP2Shell’e Evriliyor: Brotli Güvenlik Açığının (CVE-2026-111497) Etki Alanı Birçok HTTP Kütüphanesini ve Uygulamasını Etkiliyor

Kaynak: Hacker News

Paylaş
GüvenlikEdumints Blog
İçindekiler 4 başlık

Özet (TL;DR) ⚠️#

  • Brotli, Google tarafından geliştirilen ve yaygın olarak kullanılan bir sıkıştırma kütüphanesidir.
  • 21 Ekim Çarşamba: Node.js, saldırgan kontrolündeki Brotli verilerini açan bir Node.js işleminin bellek sızdırmasına veya rastgele kod çalıştırmasına neden olabilen ve "node2shell" olarak adlandırılan CVE-2026-111497 güvenlik açığını duyurdu.
  • 22 Ekim Perşembe: Python, kendi paketlerinin de CVE-2026-111497 açığına karşı savunmasız olduğunu açıkladı.
  • 23 Ekim Cuma: Bu güvenlik açığının HTTP kullanan diğer büyük programlama dillerini ve servis uygulamalarını da etkilediği, ancak yamaların henüz tam olarak yayınlanmadığı anlaşıldı.
  • Ne Yapmalısınız? Kütüphanelerinizde bir bağımlılık (dependency) olarak Brotli çözme (decoding) işlemi yapıp yapmadığınızı kontrol edin. Geniş çaplı duyuruları takip edin ve yamalar çıkar çıkmaz güncelleme yapmaya hazır olun. Etkilenebilecek bir kütüphane veya uygulama için henüz yama yoksa, yamalar yayınlanana kadar Brotli çözme özelliğini devre dışı bırakmanız önerilir.
  • Güncelleme (16:12 PT): libbrotli, Python, C++, Node.js, Bun ve Envoy için yamalar yayınlandı ve yenileri yolda. Apache ve Nginx varsayılan olarak Brotli çözme işlemi yapmamaktadır.
  • Güncelleme (16:15 PT): OpenAI, bu güvenlik açığını Şubat ayında keşfettiğini paylaştı. Kök neden o dönemde Brotli kaynak kodunda düzeltilmiş olsa da, bunun bir güvenlik açığına yol açtığı bilinmiyordu.

Brotli Nedir?#

Brotli, Google tarafından geliştirilen kayıpsız bir sıkıştırma algoritması ve veri formatıdır. Verileri depolamak veya internet üzerinden göndermek için küçültmenin etkili bir yoludur; yazılım daha sonra orijinal veriyi geri kazanmak için bu paketi açar. Özellikle HTML, CSS ve JavaScript gibi web içeriklerini sıkıştırmak amacıyla HTTP sıkıştırmasında yaygın olarak kullanılır.

CVE-2026-111497 Nedir?#

CVE-2026-111497, tüm platformlarda 1.0.3 ile 1.2.0 arasındaki sürümleri etkileyen, Google Brotli çözücüsündeki (decoder) bir sınır dışı yazma (out-of-bounds write) hatasıdır. Birkaç gün önce duyurulan Node2Shell açığının arkasındaki aynı Brotli çözücü kusurudur.

Kimliği doğrulanmamış uzak bir saldırgan, belleği bozmak, hassas verileri sızdırmak, işlemi çökertmek veya potansiyel olarak rastgele kod çalıştırmak (RCE) için özel olarak hazırlanmış Brotli sıkıştırmalı bir veri akışı gönderebilir. CVSS v4.0 skoru 9.2 (Kritik) olan bu açıktan Node.js, kendi bünyesinde barındırdığı (bundled) Brotli kütüphanesi nedeniyle etkilenmektedir.

Bir hata, Brotli çözücüsünün veriyi reddetmesi gereken durumda bile daha fazla bayt kabul etmeye devam etmesine neden olur. Bu baytlar küçük bir çalışma arabelleğini (buffer) taşırabilir ve programın belleğine zarar verebilir. Saldırgan bu hasarı kendi kodu gibi çalışan işlemleri kontrol etmek için kullanabilir.

OpenAI bu hatayı Şubat ayında bulmuş ve çift yönlü çalışan, kimlik doğrulaması gerektirmeyen uzaktan kod çalıştırma açığı olarak bildirmiştir:

  • Kötü niyetli bir istemci (client), yamalanmamış bir sunucuyu (server) ele geçirebilir.
  • Kötü niyetli bir sunucu, sıkıştırılmış yanıtları kabul eden yamalanmamış bir istemciyi ele geçirebilir.

Kök neden Şubat ayında Brotli kaynak kodunda düzeltildi, ancak o sırada bir güvenlik sorunu olarak tanımlanmadığı için şimdiye kadar bu düzeltmeyi içeren hiçbir sürüm yayınlanmadı. Bu durum, Brotli'yi kendi içinde barındıran her projenin kendi güncellemesini yayınlaması gerektiği anlamına gelir.

Geliştiriciler İçin Pratik Çıkarımlar#

  • Tedarik Zinciri ve Gömülü Bağımlılıklar: Node.js örneğinde olduğu gibi, C/C++ tabanlı temel kütüphaneler (Brotli vb.) çalışma zamanlarına (runtime) doğrudan gömülü olabilir. Standart paket yöneticisi taramaları dışında çalışma zamanı sürümlerinizi de hızla güncelleyin.
  • Çift Yönlü Risk (İstemci ve Sunucu): Güvenlik açıkları genellikle sunucu tarafı (gelen istekler) olarak düşünülür. Ancak HTTP istemcileriniz (ör. dış API'lerden veya web kazıma işlemlerinden gelen Accept-Encoding: br yanıtlarını işleyen servisler) de eşit derecede risk altındadır.
  • Geçici Önlemler (Mitigation): Yamalar tüm ekosistemde tamamlanana kadar API ağ geçitlerinde, ters vekil sunucularda (reverse proxy) ve HTTP istemci yapılandırmalarında Brotli sıkıştırma desteğini geçici olarak kapatmak en güvenli pratiktir.

Kaynak ve atıf

Bu yazı, Hacker News üzerinde yayımlanan içerikten yararlanılarak Edumints tarafından yapay zekâ desteğiyle Türkçe hazırlandı. Ayrıntılar ve yazarların kendi anlatımı için orijinaline bakabilirsin:

  • aikido.dev/blog/python-packages-vulnerable-node2shell-brotli-cve-2026-111497