deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak dev.to (home feed)

OpenAI'nin Codex'i Node.js'te Brotli RCE buldu; Imperva resmi build üzerinde gösterdi

Node.js, OpenAI Codex Security'ın bulduğu bir Brotli decoder taşması için yama yayınladı; Imperva, kod çalıştırmayı resmi Node.js 24 arm64 imajı üzerinde gösterdi.

OpenAI'nin Codex'i Node.js'te Brotli RCE buldu; Imperva resmi build üzerinde gösterdi

Bir yapay zeka güvenlik ekibinin bulduğu bir decoder hatası

Node.js, 21 Ekim'de runtime'ın içinde gönderdiği Brotli açma (decompression) kodundaki bir bellek bozulması hatası olan CVE-2026-111497 için bir güvenlik duyurusu yayınladı. Duyuru, keşfi OpenAI Codex Security araştırmacılarına atfediyor ve OpenAI, 23 Ekim'de konuyu X üzerinde, Brotli'de kimlik doğrulaması gerektirmeyen uzaktan kod çalıştırmaya izin veren bir sorun olarak açıkladı.

Tehlike teorik değil, gösterilmişti. The Hacker News'e göre Imperva, hatayı debugger ve özel bir build olmaksızın, Linux arm64 için resmi Node.js 24.22.0 imajı üzerinden kod çalıştırarak gösterdi.

Sekiz bayt, üzerine yazıldı

Brotli, Content-Encoding: br arkasındaki sıkıştırma biçimidir ve Node, Google'ın decoder'ının kendi kopyasını, node:zlib modülü üzerinden erişilebilir şekilde paketler. Duyurudaki kök neden açıklamasına göre, streaming decoder geçersiz bir blok geçişiyle karşılaştığında kalıcı bir biçim hatasını daha fazla girdi isteği sanmış ve yalnızca sekiz bayt uzunluğundaki bir iç buffer'a baytlar eklemeye devam etmiş. Duyuru, hazırlanmış bir sıkıştırılmış akış gönderen bir saldırganın süreç belleğini bozabileceği, bunun da çökme, süreç belleğinin açığa çıkması veya uzaktan kod çalıştırma ile sonuçlanabileceği uyarısını yapıyor.

Önem derecelendirmeleri raporlara göre değişiyor. dev.io'daki bir yazı, Node'un hatayı kritik değil yüksek derecelendirdiğini belirtiyor; The Hacker News de aynı karakterizasyonu paylaşıyor, buna karşılık Crypto Briefing 9.2'lik bir CVSS puanı yayınladı. En güvenilir kılavuz satıcının derecelendirmesi.

Düzeltmenin CVE'nin ima ettiğinden daha uzun bir geçmişi var. The Hacker News, düzeltmenin ilk kez Şubat 2026'da Brotli'nin upstream kaynak koduna girdiğini, ancak yalnızca Ekim sürümlerinde bir güvenlik değişikliği olarak etiketlendiğini bildiriyor; 21 Ekim tarihli Brotli 1.2.1 changelog'u CVE'yi listeliyor.

Kötü niyetli bir akış sürecinize nasıl ulaşır

dev.to'daki yazıda aktarılan Imperva'nın analizi, zlib'e doğrudan çağrı gerektirmeyen iki maruziyet yolu tespit ediyor:

  • Çekilen yanıtlar. Node'un yerleşik fetch() işlevi sıkıştırılmış yanıtları açar; dolayısıyla üçüncü taraf bir API çağıran, bir webhook URL'sini takip eden veya bir kullanıcının verdiği adresi fetch ile çeken herhangi bir servis, yanıt veren sunucu saldırgan kontrolündeyken kötü niyetli bir akışla beslenebilir.
  • Ayrıştırılan istek gövdeleri. Express 5'in body parser'ları, gzip ve deflate yanı sıra Brotli ile sıkıştırılmış gövdeleri de çözüyor. Imperva, Express 5.0.0'dan 5.3.0'a ve body-parser 2.0.0'dan 2.3.0'a kadar olan sürümlerde kod çalıştırmayı yeniden üretti. Middleware veya uygulama kodu açma işlemini yapmadığı sürece çıplak bir node:http sunucusu etkilenmez.

Sonucu ölçülü değerlendirmek gerekiyor. Imperva, kendi kurulumunda kod çalıştırmanın birden çok deneme aldığını ve yalnızca 24.x hattında arm64 test ettiğini söyledi. Daha önceki halka açık bir proof of concept, kod çalıştırmayı yalnızca bilinçli olarak zayıflatılmış bir build üzerinde başardı; standart build'lerde bir çökme ve sınırlı bir bellek okuması gerçekleştirebildi. The Hacker News, 22 Ekim itibarıyla doğada istismar bildirilmediğini yazdı.

Yamalanmış sürümler ve kesin bir EOL çizgisi

21 Ekim sürümleri hatayı üç hatta düzeltiyor:

  • Node 22.x LTS: ilk kez 22.23.4'te düzeltildi
  • Node 24.x LTS: ilk kez 24.22.1'de düzeltildi
  • Node 26.x Current: ilk kez 26.12.1'de düzeltildi

Node 20 ve daha eskisi hiçbir şey almıyor. Duyuru, kullanım ömrü sona ermiş sürümlerin bir güvenlik sürümü gerçekleştiğinde her zaman etkilenmiş olduğunu açıkça belirtiyor ve hiçbir geçici çözüm listelemiyor; çare yükseltmedir. Aynı sürüm dokuz CVE daha ele alıyor; üçü de yüksek dereceli: iki TLS sertifika hostname doğrulaması atlatması ve NUL karakterleri içeren bir dns.resolve kesilmesi sorunu.

Pratik zorluk envanter. Imperva'nın da işaret ettiği gibi, bir paket denetimi bir container içine gömülü eski bir runtime'ı gözden kaçırabilir; bu yüzden konuşlandırılmış her imajdaki, CI runner'lardaki ve VM'lerdeki Node sürümünün doğrudan kontrol edilmesi gerekiyor. dev.to'daki yazı, base imajları düzeltilmiş sürümlere sabitlemeyi ve yeniden build almayı, ayrıca npm bir uyuşmazlıkta yalnızca uyarı verdiği için package.json'daki engines alanını yalnızca dokümantasyon olarak görmeyi öneriyor.

WAF'lar kısmi bir kalkan

Vercel, 21 Ekim'de gelen saldırıyı her proje için engelleyen WAF kuralları konuşlandırdı ve 22.x ile 24.x runtime'larının yama düzeylerini kendisi yönetiyor. Bülteni sınırları konusunda açık: kurallar, fonksiyonların diğer sunuculardan fetch ile çektiği yanıtları kapsamıyor ve yamalamanın yerini almıyor; ayrıca hâlâ Node 20 üzerinde olan projelerin 22 veya 24'e geçmesi gerekiyor. Imperva kendi WAF kurallarını ekledi ve benzer şekilde, gelen bir filtrenin fetch()'in harici bir kaynaktan çektiğini hiçbir zaman incelemediği için tam çarenin bir Node.js güncellemesi olduğunu belirtiyor.

Neden önemli

Bunu sıradan bir CVE'nin ötesine taşıyan üç şey var. Birincisi, bulan taraf bir yapay zeka güvenlik ekibiydi; bu, makine destekli araştırmanın yaygın konuşlandırılmış altyapı kodunda ciddi bir hata ortaya çıkardığı dikkat çekici bir örnek. İkincisi, maruziyet pasif: hata sıradan fetch() çağrıları ve varsayılan Express body parsing üzerinden erişilebilir, dolayısıyla zlib'e hiç dokunmayan geliştiriciler bile saldırı yolunda. Üçüncüsü, Node 20 ve daha eski sürümler asla yamalanmayacak ve savunmasız runtime'lardan kalıcı bir popülasyon bırakacak. Üretimde Node çalıştıran herkes, yalnızca dizüstü bilgisayarında değil, konuşlandırılmış her imajın içindeki sürümü doğrulamalı ve düzeltilmiş bir sürüme geçmeli.

  • #node-js
  • #security
  • #brotli
  • #remote-code-execution
  • #openai

İlgili yazılar