
Node.js, “neredeyse her üretim Node.js uygulamasını” etkileyen, kritik bir güvenlik sorunu olarak tanımladığı ve başarılı bir şekilde kullanılması halinde hizmet reddi (DoS) durumunu tetikleyebilecek durumu düzeltmek için güncellemeler yayınladı.
Node.js’den Matteo Collina ve Joyee Cheung Salı günü yayınlanan bir bültende, “Node.js/V8, çerçevelerin hizmet kullanılabilirliği için güvendiği, yakalanabilir bir hatayla yığın alanı tükenmesinden kurtulmak için elinden gelen çabayı gösteriyor.” dedi.
“Yalnızca async_hooks kullanıldığında çoğalan bir hata bu girişimi bozar ve kullanıcı kodundaki özyinelemeler yığın alanını tükettiğinde Node.js’nin yakalanabilir bir hata vermeden doğrudan 7 ile çıkmasına neden olur. Bu, özyineleme derinliği temizlenmemiş giriş tarafından kontrol edilen uygulamaları Hizmet Reddi saldırılarına karşı savunmasız hale getirir.”
Özünde eksiklik, async_hooks etkinken kullanıcı kodunda bir yığın taşması meydana geldiğinde istisnayı zarif bir şekilde ele almak yerine Node.js’nin kod 7 (Dahili İstisna İşleyicisi Çalışma Zamanı Arızasını belirtir) ile çıkmasından kaynaklanmaktadır. Async_hooks, geliştiricilerin veritabanı sorguları, zamanlayıcılar veya HTTP istekleri gibi eşzamansız kaynakların yaşam döngüsünü izlemesine olanak tanıyan düşük düzeyli bir Node.js API’sidir.

Node.js, sorunun, asenkron bir işlemin ömrü boyunca veri depolamayı mümkün kılan async_hooks modülünün üzerine inşa edilmiş bir bileşen olan AsyncLocalStorage’ın kullanımı nedeniyle React Server Components, Next.js, Datadog, New Relic, Dynatrace, Elastic APM ve OpenTelemetry dahil olmak üzere çeşitli çerçeveleri ve Uygulama Performansı İzleme (APM) araçlarını etkilediğini söyledi.
Aşağıdaki sürümlerde ele alınmıştır –
- Node.js 20.20.0 (LTS)
- Node.js 22.22.0 (LTS)
- Node.js 24.13.0 (LTS)
- Node.js 25.3.0 (Güncel)
Sorun aynı zamanda async_hooks’a sahip ilk sürüm olan 8.x’ten 18.x’e kadar tüm Node.js sürümlerini de etkiliyor. Carbon kod adı verilen Node.js 8.0.0 sürümünün 30 Mayıs 2017’de yayımlandığını belirtmekte fayda var. Ancak bu sürümler, kullanım ömrü sonu (EoL) durumuna ulaştıklarından yamasızdır.
Uygulanan düzeltme, yığın taşması hatalarını tespit ediyor ve bunları ölümcül olarak ele almak yerine kullanıcı koduna yeniden atıyor. Bu, CVE tanımlayıcısı altında izleniyor CVE-2025-59466 (CVSS puanı: 7,5). Önemli pratik etkiye rağmen Node.js, birkaç nedenden dolayı düzeltmeyi yalnızca bir hafifletme olarak ele aldığını söyledi:

Node.js, “Belirtilmemiş bir davranışa yönelik bir hata düzeltmesi olmasına rağmen, ekosistem üzerindeki yaygın etkisi nedeniyle bunu güvenlik sürümüne dahil etmeyi seçtik” dedi. “React Server Bileşenleri, Next.js ve neredeyse tüm APM araçları etkileniyor. Düzeltme, geliştirici deneyimini geliştiriyor ve hata işlemeyi daha öngörülebilir hale getiriyor.”
Güvenlik açığının ciddiyeti göz önüne alındığında, çerçevelerin/araçların ve sunucu barındırma sağlayıcılarının kullanıcılarının mümkün olan en kısa sürede güncelleme yapması önerilir. Kütüphanelerin ve çerçevelerin bakımcılarının, yığın alanının tükenmesine karşı koymak ve hizmet kullanılabilirliğini sağlamak için daha sağlam savunmalar uygulamaları tavsiye ediliyor.
Açıklama, Node.js’nin ayrıca veri sızıntısı veya bozulması sağlamak, hassas dosyaları özel olarak hazırlanmış göreceli sembolik bağlantı (sembolik bağlantı) yollarını kullanarak okumak ve uzaktan hizmet reddini tetiklemek için kullanılabilecek diğer üç yüksek önem derecesine sahip kusur (CVE-2025-55131, CVE-2025-55130 ve CVE-2025-59465) için düzeltmeler yayınlamasıyla geldi.