# Node2Shell: Web sitesi sahiplerinin şimdi kontrol etmesi gerekenler

> Node2Shell, Node.js içindeki Brotli kod çözücüsünü etkiler. Açığı hangi sürümlerin giderdiğini ve çalışan sistem hakkında Hoster’dan hangi bilgileri teyit etmesini istemeniz gerektiğini öğrenin.

- Quelle: https://bezahlbare-webseite.de/tr/ratgeber/node2shell-nodejs-brotli-luecke-was-tun/
- Datum: 2026-10-23
- Sprache: tr
- Thema: Technik & Sicherheit

Node2Shell, Node.js içindeki ve sıkıştırılmış verileri açan Brotli kod çözücüsünde bulunan ciddi bir güvenlik açığıdır. Manipüle edilmiş girdiler belleğe zarar verebilir ve belirli koşullarda yabancı kodun çalıştırılmasına yol açabilir. Burada önemli olan, yama uygulanmamış bir Node.js çalışma ortamının bu tür verileri işleyip işlemediğidir. Hoster veya geliştiricinizden gerçekten çalışan uygulamayı kontrol etmesini ve etkilenen çalışma ortamlarını güncellemesini isteyin. Güncellik tarihi: 23 Ekim 2026.

## Ne oldu?

CVE-2026-111497, Node.js tarafından kullanılan Brotli kod çözücüsünü etkiler. Özel olarak hazırlanmış bir veri akışı, ayrılan bellek alanının dışına veri yazabilir. Bunun olası sonuçları arasında bellek bozulması, bellek içeriğinin açığa çıkması, sistem çökmesi ve uygun koşullarda kod çalıştırılması bulunur.

Node.js bu açığı “high” olarak değerlendiriyor. Brotli için yetkili CVE Numaralandırma Kuruluşu (CNA) olan Google ise CVSS 4.0 kapsamında 9,2 puan ve “Critical” derecesi veriyor. Bunlar farklı değerlendirmelerdir ve bu nedenle birbirleriyle çelişmeleri gerekmez. Puan, burada ayrıca doğrulanmış bağımsız bir NVD değerlendirmesine dayanmamaktadır. Ne bir sisteme sızılma olasılığını ne de gözlemlenen saldırıları ifade eder.

Node.js düzeltmeleri 21 Ekim 2026 tarihinde yayımlandı. Imperva, 22 Ekim tarihinde Linux arm64 üzerinde değiştirilmemiş resmî Node.js Image 24.22.0 ile laboratuvar ortamında kod çalıştırdığını bildirdi. Testlerde `fetch()` ve sıkıştırılmış isteklerle belirli Express-/body-parser yapılandırmaları kullanıldı. 24.22.1 sürümü aynı girdileri reddetti. Sonuçların başka ortamlara aktarılıp aktarılamayacağı belirsizliğini koruyor.

## Risk gerçekte ne kadar ciddi?

Imperva’nın Proof of Concept (PoC) çalışması, laboratuvar koşullarında uygulanabilirliğe ilişkin yayımlanmış bir kanıttır. Ne canlı bir web sitesine saldırıldığını kanıtlar ne de başarılı bir sızmayı teyit eder. Araştırmanın tamamlandığı 23 Ekim tarihinde, incelenen birincil kaynaklarda teyit edilmiş aktif istismara rastlanmadı. CVE, 21 Ekim tarihli olarak kontrol edilen CISA KEV kataloğunda da yer almıyordu. Bu durum bilinmeyen saldırıları dışlamaz.

`http.createServer()` kullanan basit bir sunucu, gelen Brotli Body’lerini otomatik olarak açmaz. Express/body-parser kullanıldığında Route, medya türü ve etkinleştirilmiş açma ayarlarının birbiriyle uyumlu olması gerekir. Yalnızca Express kullanılması, sistemin etkilendiğini kanıtlamaz. Diğer giriş noktaları; Node’un `fetch()` özelliğiyle yapılan haricî çağrılara gelen Brotli yanıtları ve `node:zlib` üzerinden doğrudan açma işlemleridir.

Bu nedenle URL içe aktarma, ön izleme ve görsel çağırma işlevlerini de kontrol ettirin. Önemli olan, saldırganların kontrol edebildiği verilerin savunmasız kod çözücüye ulaşıp ulaşmadığıdır. Kendi yanıtlarınızı sıkıştırmak farklı bir işlemdir.

## Açığı hangi sürümler gideriyor?

Aşağıdaki alt sınırlar standart Node.js Build’leri ve yalnızca bu CVE için geçerlidir; genel bir güvenlik garantisi değildir.

Dağıtımlar, düzeltmeleri daha eski sürüm numarasına sahip paketlere Backport edebilir. Paketin tam Revision bilgisini, dağıtımı ve Hersteller-Advisory belgesini isteyin. Ayrıca Node.js’in yerleşik Brotli kitaplığını mı yoksa sistem kitaplığını mı kullandığını kontrol ettirin. Debian’da sistemdeki Brotli belirleyicidir; araştırma sırasında incelenen Tracker henüz düzeltilmiş bir paket göstermiyordu. Ubuntu, Node.js ve Brotli’yi “Needs evaluation” olarak listeliyordu. Bu araştırma her iki dağıtım için de düzeltilmiş bir paket numarasını doğrulamamaktadır.

- Node.js 22.x: en az 22.23.4.
- Node.js 24.x: en az 24.22.1.
- Node.js 26.x: en az 26.12.1.
- Node.js 20: destek (EOL) 30 Nisan 2026 tarihinde sona erdi; araştırmada resmî bir Upstream düzeltme sürümü doğrulanmadı. Desteklenen ve yamalanmış bir sürüm serisine geçin.
- Node.js 18 ve daha eski sürümlerin yanı sıra 21, 23 ve 25: bunların da desteği sona erdi. Geçiş yapın veya belirli bir sağlayıcı düzeltmesine ilişkin kanıt isteyin. Eski tekil sürümlerin tamamı bu açık bakımından eksiksiz incelenmedi.

## Etkilenip etkilenmediğimi nasıl belirleyebilirim?

Shell erişiminiz olmayan Shared veya Managed Hosting kullanıyorsanız Hoster’dan projenizin Node.js kullanıp kullanmadığını ve nerede kullandığını kontrol etmesini isteyin. “Sunucu güncel” ifadesi, uygulamanızın yama durumunu kanıtlamaz. Burada Node.js, uygulamanın içinde çalıştığı Runtime’dır.

WordPress’in kendisi PHP gerektirir. Ancak ek Node-Backends, ayrı Frontends ve Build araçları yine de kontrol edilmelidir. Yalnızca statik HTML, CSS ve JavaScript dosyaları sunuluyorsa bu dosyalar çağrılırken ilgili uygulamanın Node.js sunucu yolu kullanılmaz. Buna rağmen bu dosyaları oluşturan Build süreci Node.js ve haricî çağrılar kullanabilir.

Next.js için çalışma biçimi ve Runtime önemlidir: sunucu taraflı sayfa oluşturmayı, API Routes’u, Route Handlers’ı ve görsel optimizasyonunu kontrol ettirin. Statik Export durumunda da Build ortamının kontrol edilmesi gerekir. Edge işlevleri için sağlayıcı gerçek uygulamayı belirtmelidir; Node.js sürüm sınırları genelleştirilemez.

- Geliştiriciler uygulama bağlamında `node --version` komutunu çalıştırmalıdır. Ayrıca çalışan uygulama sürecinden veya onun Startprotokoll kaydından alınan `process.version` ve `process.execPath`, sürümü ve program yolunu kanıtlamalıdır. Herhangi bir SSH-Shell içinde yapılan kontrol yeterli değildir.
- Container’larda Image, Tag ve Digest bilgilerini belgeleyin; temel Image’ı güncelleyin, yeniden Build edin, tamamen dağıtın ve yeni çalışan Container’da tekrar kontrol edin. Host güncellemesi Image’ı değiştirmez.
- Plesk’te Domain için seçilen Runtime’ı kontrol edin. Panel sürümü ve kullanılabilir Runtimes, uygulamanın gerçekten hangi sürümle çalıştığını kanıtlamaz.
- Otomatik Build-Jobs’u, CI-Runner’ları ve bunların Container’larını da kontrol edin. Geliştiricilerin yerel kurulumları bunların durumunu kanıtlamaz.

## Hoster veya geliştiricime ne yazmalıyım?

Aşağıdaki talebi Domain’inizi veya proje adınızı ekleyerek gönderebilirsiniz:

“Konu: [Domain/proje] için CVE-2026-111497. Merhaba, lütfen uygulamamızın Node.js kullanıp kullanmadığını ve haricî Brotli verilerini işleyip işlemediğini kontrol edin. Düzeltilmiş resmî sürümler 22.23.4, 24.22.1 ve 26.12.1’dir. Gerçekte hangi sürüm ve hangi program yolu çalışıyor? Lütfen bunu uygulama sürecinden veya Startprotokoll kaydından alınan bilgilerle kanıtlayın. Container’lar için: Hangi Image, Tag ve Digest ile dağıtıldı? Backport’lar için: Hangi paket Revision’ı ve hangi Hersteller-Advisory düzeltmeyi kanıtlıyor ve sistemdeki Brotli kullanılıyor mu? Tüm Web süreçleri, Worker’lar ve Instance’lar yeniden başlatıldı mı veya değiştirildi mi ve ardından kontrol edildi mi? Lütfen Express/body-parser, `fetch()`, görsel optimizasyonu, `node:zlib`, ek Backends ve Build-Runner’ları da kontrol edin. Güncelleme henüz yapılmadıysa: Hangi geçici önlem uygulanıyor, hangi yollar açık kalıyor ve güncelleme ne zaman yapılacak? Lütfen dağıtılmış durumu kanıtlarıyla teyit edin. Teşekkür ederim.”

Yeni oluşturulan bir Image’ın ayrıca dağıtılması gerekir. Güncellemeden sonra etkilenen tüm süreçleri yeniden başlatın veya değiştirin ve aktif durumu tekrar kontrol ettirin.

## Güncellemeye kadar ne yardımcı olabilir?

Geçici önlemler yamanın yerini tutmaz. Geliştiriciler, etkilenen tüm Express-/body-parser Parser’larında `inflate: false` kullanarak sıkıştırılmış istekleri reddedebilir. Bu ayar yalnızca Brotli’yi etkilemez ve meşru Client’larda sorun yaratabilir. Diğer Parser’lar, haricî çağrılar ve doğrudan kod çözücü çağrıları ayrıca kontrol edilmelidir.

Öne yerleştirilmiş bir Proxy veya Web Application Firewall (WAF), Brotli kodlu istekleri reddedebilir. Bunun için ilgili tüm erişim yolları kapsanmalıdır; Origin Server’a doğrudan erişim filtrenin etrafından geçmemelidir. Bu önlem, `fetch()` için alınan haricî yanıtları korumaz.

Etkilenen içe aktarma, ön izleme veya çağırma işlevleri yama uygulanana kadar kısıtlanabilir ya da duraklatılabilir. Farklı bir `Accept-Encoding` Header’ı, kötü niyetli bir yanıt sunucusuna karşı güvenilir bir engel değildir. CDN’de Brotli sunumunun kapatılması da kod çözücünün korunduğunu kanıtlamaz.

Vercel, 21 Ekim tarihli Bulletin’inde WAF kurallarını ve devam eden Runtime yama dağıtımını açıklıyor; tamamlandığı burada doğrulanmış değildir. 22.x/24.x için yama sürümlerini Vercel yönetir. 20.x kullanan projeler 22 veya 24 sürümüne geçmeli ve yeniden Deploy edilmelidir. Haricî Backends ayrıca kontrol edilmelidir.

## Node2Shell hakkında sık sorulan sorular

### Güncel WordPress eklentileri yeterli mi?

Ek Node.js hizmetleri etkileniyorsa hayır. WordPress’in kendisi PHP gerektirir; eklenti güncellemeleri Node.js yamasının yerini tutmaz. Etkilenen Brotli kitaplığını kullanan diğer yazılımların durumu da bu şekilde kontrol edilmiş olmaz.

### Cloudflare veya bir WAF koruma sağlar mı?

Araştırmada bu CVE için belirli bir Cloudflare kuralı doğrulanmadı. WAF koruması ne Runtime güncellemesinin ne de haricî yanıtlar ile doğrudan kod çözücü kullanımının kontrolünün yerini tutar.

### Statik bir web sitesi için ne geçerlidir?

Hazır dosyalar bu uygulamaya ait bir Node.js sunucu yolunu kullanmaz. Build ortamı ve ek API hizmetleri ayrıca kontrol edilmelidir.

### Konsol erişimim yok. Ne yapmalıyım?

Yukarıdaki talebi Hoster’a gönderin. Domain’iniz için çalışan sistemin yama durumu ve yeniden başlatma ya da Redeploy dâhil olmak üzere kanıt isteyin.

### Vercel üzerindeki Next.js için ne geçerlidir?

Güncel durumu sağlayıcıya teyit ettirin. Vercel’in WAF’ı kendi ağı üzerinden geçen trafiği kapsar; `fetch()` için alınan haricî yanıtları ise açıkça kapsamaz. Vercel’e göre kendi sunucunuzda barındırılan Next.js, görsel optimizasyonu sırasında Brotli yanıtlarını engellemez.

### PoC, sistemime sızıldığını kanıtlar mı?

Hayır. Laboratuvar raporu web sitenizde bir olay yaşandığını kanıtlamaz. Tersine, incelenen kaynaklarda teyit edilmiş vaka bulunmaması da saldırıların tamamen dışlanabileceğini göstermez.

---
Veröffentlicht von bezahlbare-webseite.de — Website im Abo ab 79 €/Monat. https://bezahlbare-webseite.de/