node.js'de brotli zafiyeti: node2shell denen bela

Posted on 23 Eki 2026

arkadaşlar, imperva’nın araştırmacıları node.js’de ciddi bir açık bulmuşlar. CVE-2026-111497 denen bu zafiyet sayesinde saldırganlar node.js’in resmi build’inde uzaktan kod çalıştırabiliyor. “node2shell” diyorlar buna, adından da anlaşılıyor işin ciddiyeti.

ne oluyor bu sefer?

şöyle ki, node.js’in içinde bundled olarak gelen brotli decoder’ında bir açık var. bu açığı kullanan saldırganlar özel hazırlanmış brotli verileri uygulamaya gönderip, uygulamayı kendi kodlarını çalıştırmaya zorlayabiliyor. yani uzaktan kod çalıştırma (RCE) denen o kötü şey işte.

imperva’nın araştırmacıları bunu node.js 24.22.0 versiyonunda (linux arm64) test ettiler. spoiler: hiçbir debugger’a ihtiyaç yok, hiçbir custom build gerekmiyor. sadece crafted brotli data yeterli. bu açık aktif olarak sömürülebilir durumda.

teknik detaylar

  • açık: CVE-2026-111497
  • etkilenen: node.js resmi build’leri (en azından 24.22.0)
  • zafiyet türü: uzaktan kod çalıştırma (RCE)
  • saldırı vektörü: ağ üzerinden, özel hazırlanmış brotli verileriyle
  • ciddiyet: ciddi ciddi acil 🔴
SistemDurum
Node.js (24.22.0+)✅ Etkileniyor
Node.js eski versiyonlar⚠️ Kontrol et
Diğer brotli uygulamaları⚠️ Araştırılıyor

yapmanız gerekenler (acil)

1. node.js’i güncelle:

# önce mevcut versiyonunu kontrol et
node --version

# yedek al (çok önemli!)
cp -r /path/to/your/node/app /path/to/backup/

# node.js'i güncelle (en son kararlı versiyona)
# npm kullanıyorsan
npm install -g n
n latest

# ya da nvm kullanıyorsan
nvm install node
nvm use node

2. uygulamalarını kontrol et:

# brotli kullanan paketleri listele
npm list | grep brotli

# package.json'da brotli versiyonunu kontrol et
cat package.json | grep -A 5 -B 5 brotli

3. bağımlılıkları güncelle:

# tüm paketleri güncelle
npm update

# ya da package-lock.json'ı sıfırla ve yeniden kur
rm package-lock.json
npm install

4. uygulamayı yeniden başlat:

# pm2 kullanıyorsan
pm2 restart all

# systemd kullanıyorsan
sudo systemctl restart your-app

# docker kullanıyorsan
docker-compose restart
docker restart container_name

geçici çözümler (yamayı hemen uygulayamıyorsan)

  • spoiler: bu açık için gerçek bir geçici çözüm yok, ama şu işleri yapabilirsin:
    • node.js uygulamalarının dış ağdan erişimini kısıtla (firewall kuralları)
    • sadece güvenilir kaynaklardan gelen brotli verilerini kabul et
    • uygulamanın çalıştığı kullanıcı yetkilerini sınırla (non-root)
    • WAF (Web Application Firewall) kuralları ekle brotli payload’larını filtrelemek için

dikkat edilecekler

  • dikkat: yedek almadan yapmayın şu işi, sonra ağlarsınız
  • test ortamında önce deneyin, sonra production’a geçin
  • load balancer’ınız varsa, zero-downtime deployment yapabilirsiniz
  • container kullanıyorsanız image’ı güncelleyin ve redeploy edin
  • edit: node.js foundation bu açığı kritik olarak işaretlemiş, CISA da takip ediyor

kaynaklar


Bu içerik yapay zeka tarafından oluşturulmuştur.