Node.js projesi, destek verilen üç ana sürüm hattı için güvenlik güncellemesi yayımladı ve 16 açığı kapattı. Düzeltmeler 22.23.5, 24.22.3 ve 26.13.1 sürümleriyle geldi; sorunların yedisi yüksek riskli olarak sınıflandırıldı.
En kritik açıklar HTTP/2, HTTPS ve TLS sunucu kodunda yer alıyor. Bu açıkların bazıları uzaktan kimlik doğrulaması gerektirmeden sunucuyu çökertiyor, bazıları ise diğer bağlantılara ait bellek içeriğinin okunmasına kadar uzanıyor. Yama, Node.js süreçleri bağlantıları doğrudan kendisi kabul eden ortamlarda önem taşıyor.
HTTP/2 tarafında çökme ve bellek sızıntısı
CVE-2026-123863 kodlu açık, varsayılan bir HTTP/2 sunucusunda çalışıyor. Sunucunun, istek gövdesi tamamen gelmeden yanıt vermesi yeterli oluyor; proje bu davranışı tipik olarak tanımlıyor. Bu koşulda saldırgan, sunucunun doğrulama kontrolünü tetikleyip süreci sonlandırabiliyor. Açık hem TLS üzerinden hem de düz bağlantılarda istismar edilebiliyor. Node.js’in açıklamasına göre bu sorun yalnızca 24.x ve 26.x aktif sürüm hatlarını etkiliyor.
Aynı gün yayımlanan düzeltmeler arasında CVE-2026-123865 de bulunuyor. Bu açık, herhangi bir varsayılan HTTP/2 sunucusunun bellek ve dosya tanıtıcılarını kalıcı biçimde tutmasına yol açabiliyor. Yine tüm desteklenen hatlar etkileniyor.
HTTP/2 cephesindeki bir başka hata olan CVE-2026-123866 ise bellek taşmasına ya da bellek sızıntısına dönüşebiliyor. 24.22.0 ve 26.9.0 sürümlerinden itibaren bunu yalnızca istemci tetikleyebiliyor. 22.x hattında ve daha eski 24.x ile 26.x derlemelerinde ise sunucunun bir akışı yanıtın ortasında kapatması, örneğin boşta kalma zaman aşımı sonrası, saldırıyı mümkün kılıyor.
HTTPS ve TLS’te erişim kontrolü ile bellek okuma riski
Node.js HTTPS sunucularını etkileyen CVE-2026-123864, kimliği doğrulanmamış bir istemcinin diğer bağlantılara ait belleği okumasına izin verebiliyor. Proje, bu belleğin içinde TLS özel anahtarları ve başka kullanıcıların isteklerinin de bulunabileceğini belirtiyor. Açığın tetiklenmesi için, istek gövdesi tam gelmeden önce res.flushHeaders() çağıran ve daha sonra veriyle birlikte res.end() yapan bir işleyici gerekiyor. Sızan belleğin okunabilmesi için de istek gövdesini geri döndüren ya da saklayan bir rota bulunması şart. node:http ile kurulan düz HTTP sunucuları bu açık kapsamına girmiyor.
CVE-2026-123874, 24.x ve 26.x sürümlerinde stream.respondWithFile() veya stream.respondWithFD() kullanan sunucularda bellek bozulmasına neden olabiliyor. Aynı dosya indirmeleri iptal edildiğinde ise tüm desteklenen hatlarda sunucu çökebiliyor; bu durum CVE-2026-123875 olarak izleniyor ve orta risk derecesiyle not edilmiş durumda.
Bir diğer yüksek riskli açık CVE-2026-126051. Bu hata, sunucu SNICallback, OCSPRequest, newSession veya resumeSession kancalarını ya da server.addContext() işlevini kullanıyorsa 24.x ve 26.x hatlarında TLS sunucusunu çökertebiliyor. CVE-2026-123872 ise bazı host adları için daha sıkı istemci sertifikası kuralları uygulayan TLS sunucularında ortaya çıkıyor. Başka bir host adı için yetkilendirilmiş istemci, TLS 1.2 yeniden müzakere sırasında daha sıkı kuralları aşarak geçiş yapabiliyor. Bu sorun üç desteklenen hattı da kapsıyor.
Node.js, güvenlik duyurusunda geçici bir çözüm paylaşmadı ve tek düzeltme olarak ilgili hattın yamalı sürümüne yükseltmeyi işaret etti. Destek dışı kalan 20.x ve 25.x sürümlerine ise bu yayınla yama gelmiyor; proje, bu sürümlerin her zaman etkilendiğini söylüyor.
Duyuruda, açıklardan yararlanıldığına dair bir bulgu yer almıyor. Ayrıca HTTPS açığının tetiklendiği sistemlerde TLS anahtarlarının ya da başka gizli bilgilerin güncelleme sonrası değiştirilip değiştirilmemesi gerektiği de belirtilmedi.
Yediği açıkların beşinin, aralarında CVE-2026-123863 ve CVE-2026-123864’ün de bulunduğu bir grubun, Chris Rohlf tarafından Claude ve Anthropic Research ile birlikte bildirildiği kaydedildi. NVD kayıtları: CVE-2026-123863, CVE-2026-123864, CVE-2026-123865, CVE-2026-123866, CVE-2026-123874, CVE-2026-123875, CVE-2026-126051, CVE-2026-123872.
