Node.js, 22, 24 ve 26.x serileri için yayımladığı güncellemeyle onararak sunucuları çökerten HTTP/2 hataları ve TLS anahtarlarını da içerebilen bellek sızıntılarına yol açan 16 zafiyeti giderdi.
Yazılım ve Uygulamalar
Admin4 okunma

Node.js 16 güvenlik açığını onararak HTTP/2 çökmesi ve veri sızıntısı riskini ortadan kaldırdı

Node.js, 22, 24 ve 26.x serileri için yayımladığı güncellemeyle onararak sunucuları çökerten HTTP/2 hataları ve TLS anahtarlarını da içerebilen bellek sızıntılarına yol açan 16 zafiyeti giderdi.

Node.js 16 güvenlik açığını onararak HTTP/2 çökmesi ve veri sızıntısı riskini ortadan kaldırdı

Haber detayı

Node.js projesi, desteklediği üç ana sürüm hattı üzerinden toplam 16 güvenlik zafiyetini giderdi. Bu güncelleme, özellikle yerleşik HTTP/2 desteği kullanan sunucularda kritik sonuçlar doğurabilen iki temel sorunu ortadan kaldırıyor. İlk zafiyet, kimlik doğrulama gerektirmeyen istemcilerin 24.x ve 26.x serilerinde çalıştırılan HTTP/2 sunucularını kalıcı olarak durdurmasına (crash) olanak tanıyor. İkinci zafiyet ise sunucunun, başlangıçta diğer bağlantılar için ayrılmış olan bellek parçalarını ve yanıtları hedef istemciye iletebilmesine yol açıyor. Proje, bu sorunları düzeltmek üzere 22.23.5, 24.22.3 ve 26.13.1 sürümlerini desteklenen tüm hatlar için yayımladı.
Çökme sorununun kökeni olan CVE-2026-123863 numaralı zafiyet, istek gövdesi tamamen iletilemeden önce yanıt veren varsayılan bir HTTP/2 sunucusu gerektiriyor. Node.js ekibi bu davranışın 'tipik' olduğunu belirtirken, hatanın hem TLS (güvenli) hem de açık metin (cleartext) bağlantıları üzerinden tetiklenebildiğini açıkladı. Bellek sızıntısına neden olan CVE-2026-123866 hatası ise üç desteklenen hattın tamamını etkiliyor. 24.22.0 ve 26.9.0 sonrası sürümlerde yalnızca istemcinin kendisi bu hatayı tetikleyebilirken, 22.x ve daha eski sürümlerde sunucunun bir süre sonra yanıtı yarıda kesmesi (örneğin boşta kalma zaman aşımı) durumunda da sızıntı riski devam ediyor.

HTTP/2 ve TLS Katmanındaki Derinlemesine Hatalar​

Güncellemede ele alınan sorunlar arasında Node.js HTTPS sunucularında yer alan CVE-2026-123864 zafiyeti de dikkat çekiyor. Bu hata, kimlik doğrulamasız istemcilerin diğer bağlantıların bellek alanlarını okumasına izin verebiliyor. Projenin güvenlik duyurusuna göre sızdırılan veriler arasında TLS özel anahtarları ve diğer kullanıcıların istek gövdeleri de bulunabiliyor. Bu risk, istek gövdesi tamamen gelmeden önce res.flushHeaders() fonksiyonunu çağıran ve daha sonra veriyle birlikte res.end() çalıştıran işleyicilerde ortaya çıkıyor. Sızdırılan belleğin okunabilmesi için istek gövdelerini geri gönderen veya depolayan bir rota da gerekiyor. Düz düz HTTP sunucuları (node:http ile kurulan) bu specific hatadan etkilenmiyor.

Yüksek Riskli Başka Sorunlar ve Sistemik Etkileri​

Yayımlanan sürüm, Node.js çekirdeğindeki 16 zafiyeti onarırken bunlardan yedisinin 'yüksek' risk kategorisinde değerlendirildiği belirtildi. Dört yüksek riskli hata daha, sunucunun kaynak tüketimini ve bütünlüğünü hedef alıyor:
  • CVE-2026-123865: İstemci, üç hattın tamamında varsayılan HTTP/2 sunucusunu kalıcı olarak bellek ve dosya bağlayıcı (file descriptor) tüketmeye zorlayabiliyor.
  • CVE-2026-123874: 24.x ve 26.x serilerinde stream.respondWithFile() veya stream.respondWithFD() ile dosya sunan sunucularda istemci bellek bozulmasına (memory corruption) neden olabiliyor.
  • CVE-2026-123875: Üç hattın tamamında bu tür indirmelerin iptal edilmesi sunucuyu çökertebiliyor; bu hata 'orta' risk olarak sınıflandırıldı.
  • CVE-2026-126051: 24.x ve 26.x'te SNICallback, OCSPRequest veya server.addContext() kancıklarını kullanan TLS sunucuları, istemci tarafından çökertilme riski taşıyor.
  • CVE-2026-123872: TLS sunucularında, belirli bir ana bilgisayar adı (hostname) için daha sıkı istemci sertifikası kuralları bulunan sistemlerde, başka bir ana makine için onaylanmış istemci, TLS 1.2 yeniden pazarlığı (renegotiation) sırasında kuralları karşılamadan daha sıkı yapıya geçiş yapabiliyor.
\nBu zafiyetlerin tamamı, Node.js'in kendi HTTP/2, HTTPS ve TLS sunucu kodu içinde yer aldığından, istekleri doğrudan kabul eden Node.js süreçleri için hayati önem taşıyor. Projenin güvenlik duyurusu, henüz güncelleme yapamayan sunucular için herhangi bir çalışma yöntemi (workaround) sunmuyor; önerilen tek çözüm, ilgili hattın düzeltilmiş sürümüne geçmek. 20.x ve 25.x gibi hizmet dışı bırakılmış hatlar bu güncelleme kapsamına alınmadı ve bu sürümlerin her zaman etkilendiği belirtildi.

Güvenlik Uzmanı İş Birliği ve Sorumluluklar​

Güvenlik duyurusuna göre, aralarında kritik çökme hatası CVE-2026-123863 ve bellek sızıntısı CVE-2026-123864'un da yer aldığı 5 zafiyet, Chris Rohlf tarafından Claude ve Anthropic Research ile iş birliği içinde rapor edildi. Duyuru, bu zafiyetlerin aktif olarak sömürüldüğüne dair herhangi bir saldırı vakası raporlamıyor. Ayrıca, HTTPS zafiyeti için gerekli koşulları karşılayan sunucuların güncelleme sonrası TLS anahtarlarını veya diğer sırları değiştirmeleri gerektiğine dair resmi bir yönlendirme de bulunmuyor.

Sıkça Sorulan Sorular​

Node.js 24.x ve 26.x sunucularını çökerten temel hata nedir?​

Çökme sorununun kaynağı CVE-2026-123863 olarak belirlenen zafiyettir. Bu hata, istek gövdesi tamamen iletilemeden önce yanıt veren varsayılan bir HTTP/2 sunucusunu gerektirir ve kimlik doğrulamasız istemcilerin bu sunucuları durdurmasına olanak tanır. Hata hem TLS hem de açık metin bağlantıları üzerinden tetiklenebilir.

Sızdırılan bellek parçaları arasında hangi türde hassas veriler bulunabilir?​

CVE-2026-123864 kapsamında, kimlik doğrulamasız istemcilerin diğer bağlantıların bellek alanlarını okuyabildiği belirtiliyor. Sızan veriler arasında sunucunun TLS özel anahtarları ve diğer kullanıcıların istek gövdeleri yer alabiliyor. Bu durum, sunucunun güvenliği için ciddi bir veri bütünlüğü riski oluşturuyor.

Hizmet dışı bırakılmış Node.js sürümleri (20.x ve 25.x) için güncelleme mevcut mu?​

Hayır. 20.x ve 25.x gibi hizmet dışı bırakılmış hatlar, bu güvenlik güncellemesi kapsamında yer almıyor. Proje, bu eski sürümlerin zafiyetlerden her zaman etkilendiğini belirtiyor. Dolayısıyla bu sürümlerde çalışan sunucular, ilgili düzeltme paketlerinden yararlanamıyor.

Zafiyetlerin tespitinde kimin veya hangi kurumların rolü oldu?​

Güvenlik duyurusuna göre, aralarında CVE-2026-123863 ve CVE-2026-123864'ün de bulunduğu 5 zafiyet, Chris Rohlf tarafından Claude ve Anthropic Research ile iş birliği içinde rapor edilmiştir. Bu iş birliği, zafiyetlerin keşfi ve Node.js ekibine aktarılmasında etkili olmuştur.

Yeni sürümlere geçiş yapamayanlar için önerilen bir geçici çözüm var mı?​

Node.js projesinin yayımladığı güvenlik duyurusunda, henüz güncelleme yapamayan sunucular için herhangi bir çalışma yöntemi (workaround) listelenmemiştir. Duyuru, zafiyetleri gidermenin tek yolunun ilgili desteklenen hattın düzeltilmiş sürümüne (22.23.5, 24.22.3 veya 26.13.1) geçmek olduğunu vurguluyor.

Etiketler

Yorumlar (0)

Yorum yapmak için giriş yapmalısınız.

Geri
Üst