Node.js'in Brotli çözücüsündeki açıkla resmi sürümde kod çalıştırıldı, 22, 24 ve 26 serileri etkileniyor
Node.js'in 21 Ekim'de kapattığı CVE-2026-111497, uygulamanın açtığı Brotli sıkıştırılmış veriyle bellek bozulmasına yol açıyor. Imperva, resmi Node.js 24.22.0 imajında saldırganın gönderdiği kodu çalıştırmayı başardı. Düzeltme 22.23.4, 24.22.1 ve 26.12.1 sürümlerinde.
- Güncellendi:
- 3 dk okuma
- 12 kaynak
Kısaca
- Brotli verisini node:zlib ile ya da yerleşik fetch() üzerinden açan uygulamalar etkileniyor. Express 5'in istek gövdesi ayrıştırıcıları da gelen Brotli verisini açabiliyor.
- Node.js açık için geçici bir önlem sunmuyor. 20.x ve daha eski seriler düzeltme almayacak. Açığın gerçek saldırılarda kullanıldığına dair bir bildirim yok.
Node.js projesi 21 Ekim’de desteklenen üç serisi için on güvenlik açığını kapatan güncellemeler yayımladı. Bunların en ciddisi, Node.js’in kendi içinde taşıdığı Brotli sıkıştırma kütüphanesindeki CVE-2026-111497. Node.js’in bildirimine göre hatalı biçimlendirilmiş sıkıştırılmış veri, çözücünün iç tamponunun sonunu aşarak belleğe yazmasına yol açıyor. Bu da işlemin çökmesine, bellekteki bilgilerin açığa çıkmasına ya da uzaktan kod çalıştırılmasına neden olabiliyor.
Node.js açığı “yüksek” önem derecesiyle sınıflandırıyor. Açığın CVE kaydını oluşturan Google ise Brotli kütüphanesi için CVSS 4.0 puanını 9.2 olarak verdi ve açığı kritik saydı.
Imperva’nın gösterdiği saldırı
Güvenlik şirketi Imperva, 22 Ekim’de yayımladığı ve “Node2Shell” adını verdiği çalışmada, resmi Node.js 24.22.0 Linux arm64 imajını kullanan uygulamalarda, Brotli verisinin içine yerleştirdiği kodu çalıştırmayı başardı. Bunun için hata ayıklayıcıya ya da özel derlenmiş bir Node.js’e gerek kalmadı. Aynı veri düzeltilmiş 24.22.1 sürümünde reddedildi ve kod çalışmadı.
Imperva saldırının her denemede başarılı olmadığını, kendi ortamında birkaç deneme gerektiğini belirtiyor. Sonuç, test edilen Linux arm64 derlemesi ve uygulama yapısıyla sınırlı. Imperva her Node.js derlemesini ya da uygulamayı test etmediğini söylüyor. The Hacker News’e göre bu çalışma, yalnızca bilerek zayıflatılmış bir test derlemesinde kod çalıştırabilen ilk kamuya açık denemenin ötesine geçiyor. 22 Ekim itibarıyla açığın gerçek saldırılarda kullanıldığına dair bir bildirim yok.
Etkilenen uygulamalar
Açık, Node.js’in taşıdığı Brotli çözücüsünde olduğu için 22.x, 24.x ve 26.x serilerinin hepsini etkiliyor. Bir uygulama bu çözücüye HTTP alışverişinin iki tarafından da ulaşabiliyor:
- Gelen yanıtlar: Uygulama, Node.js’in yerleşik fetch() fonksiyonuyla Brotli sıkıştırılmış bir yanıt aldığında veri otomatik olarak açılıyor. Yani saldırganın kontrol ettiği bir sunucudan veri çeken bir uygulama etkilenebiliyor.
- Gelen istekler: Express 5’in express.json(), express.urlencoded(), express.text() ve express.raw() gibi istek gövdesi ayrıştırıcıları, bir rotada kullanıldığında Brotli sıkıştırılmış istek gövdelerini de açıyor. Imperva, Express 5.0.0 ile 5.3.0 ve body-parser 2.0.0 ile 2.3.0 aralığından seçtiği sürümlerde iki yoldan da kod çalıştırabildi, aradaki her sürümü ayrıca test etmedi.
Imperva’ya göre sade bir Node.js HTTP sunucusu, Brotli sıkıştırılmış bir istek gövdesini yalnızca aldığı için açmıyor. Bunun için bir ara katman yazılımı ya da kodda açıkça yapılan bir çağrı gerekiyor.
Aynı düzeltme Google’ın Brotli kütüphanesinin 1.0.10, 1.1.1 ve 1.2.1 sürümleriyle de yayımlandı. CVE kaydına göre 1.0.3 ile 1.2.0 arasındaki Brotli sürümleri etkileniyor. Bu yüzden Brotli’yi kendi içinde taşıyan başka yazılımların da güncellenmesi gerekebilir.
Aynı güncellemedeki diğer düzeltmeler
Güncellemedeki diğer üç yüksek önem dereceli açıktan ikisi TLS sertifika doğrulamasıyla ilgili (CVE-2026-106069 ve CVE-2026-105483). Sunucunun IP adresi alışılmadık biçimde, örneğin başında sıfır olan ya da tam genişlikli rakamlarla yazıldığında, bir sertifika ait olmadığı bir adres için kabul edilebiliyor. Üçüncüsü olan CVE-2026-105482’de dns.resolve fonksiyonları, içinde NUL karakteri bulunan alan adlarını sessizce kırpıyor. Bu da izin listesiyle doğrulanan bir alan adı yerine başka bir adın kayıtlarının kullanılmasına yol açabiliyor.
Güncelleme ayrıca, özel anahtarları ele geçirilen eMudhra ara sertifika otoritelerine güveni kaldırıyor. Bunun yanında c-ares, OpenSSL, SQLite ve Undici bileşenleri de güncellendi.
Önerilen önlemler
Node.js’i kullandığınız seriye göre 22.23.4, 24.22.1 ya da 26.12.1 veya daha yeni bir sürüme güncelleyin. İçinde Node.js taşıyan konteyner imajlarını da yeniden derlemeyi unutmayın. Paket envanterleri bu imajları gözden kaçırabiliyor. Desteği bitmiş 20.x ve daha eski seriler düzeltme almayacağı için desteklenen bir seriye geçilmesi gerekiyor.
Node.js bu açık için geçici bir önlem sunmuyor. Siber Güvenlik Başkanlığı, 23 Ekim’de yayımladığı TR-26-1388 numaralı bildirimde geçici önlem olarak güvenilmeyen trafikteki Brotli açma işleminin vekil sunucu katmanında devre dışı bırakılmasını öneriyor. Imperva da mümkün olan yerlerde güvenilmeyen Brotli trafiğinin sınırlanmasını öneriyor, ancak açığı yalnızca güncellemenin kapattığını vurguluyor. The Hacker News’e göre Node.js barındırma hizmeti veren Vercel, 21 Ekim’de gelen isteklerdeki saldırıyı engelleyen kurallar eklediğini açıkladı. Bu kurallar uygulamanın başka sunuculardan çektiği Brotli yanıtlarını kapsamıyor.
Kaynaklar
- Node.js, "Wednesday, October 21, 2026 Security Releases"nodejs.org (başka siteye gider)
- Imperva, "Node2Shell: From Brotli Data to Remote Code Execution"imperva.com (başka siteye gider)
- Siber Güvenlik Başkanlığı, TR-26-1388 (Node.js Projesi Güvenlik Bildirimi)siberguvenlik.gov.tr (başka siteye gider)
- The Hacker News, "Researchers Demonstrate Node2Shell RCE Exploit on Node.js Build Using Crafted Brotli Data"thehackernews.com (başka siteye gider)
- CVE kaydı, CVE-2026-111497cve.org (başka siteye gider)
- Python Packaging Advisory Database, PYSEC-2026-4322 (Brotli)github.com (başka siteye gider)
- Bun, "Bun v1.4.4" sürüm notlarıgithub.com (başka siteye gider)
- The Hacker News, "Brotli Decoder Flaw Behind Node.js RCE Also Affects Bun, Python and Other Widely Used Software"thehackernews.com (başka siteye gider)
- Microsoft .NET Blog, Ekim 2026 olağan dışı .NET güvenlik güncellemeleri duyurusudevblogs.microsoft.com (başka siteye gider)
- PHP, Windows paketleri için Brotli güncellemesi duyurusu (26 Ekim 2026)php.net (başka siteye gider)
- BleepingComputer, "Microsoft releases emergency .NET patches for critical Brotli flaw"bleepingcomputer.com (başka siteye gider)
- The Hacker News, "PHP Issues Second Windows Security Update in Five Days to Fix Brotli Code Execution Flaw"thehackernews.com (başka siteye gider)
Bu konuda
Zafiyet · 3 dk
Arista VeloCloud Orchestrator'da en düşük yetkili hesapla en üst yetkiye çıkılan sıfırıncı gün açığı saldırılarda kullanılıyor
Zafiyet · 3 dk
HPE, Aruba kablosuz ağ işletim sistemlerinde 72 açık kapattı, sekizinin puanı 10
Zafiyet · 3 dk
Python'un görüntü kütüphanesi Pillow'un 13.0.0 sürümü kod çalıştırmaya izin veren açıkları kapattı