Güvenlik uyarısı · Yüksek
Node.js: HTTP/2 ve HTTPS hataları, istemcilerin sunucuları çökertmesine ve diğer kullanıcıların verilerini okumasına yol açabiliyor
· 5 dakikalık okuma · Centoculus Security Team
tarihinden beri biliniyor
Etkilenenler: Node.js 22.x (22.23.5 öncesi), 24.x (24.22.3 öncesi), 26.x (26.13.1 öncesi). 20.x ve 25.x gibi destek süresi dolmuş sürümler de etkilenir, ancak düzeltme almaz.
Ne oldu?
11 Kasım 2026'da Node.js projesi desteklenen üç sürüm hattı için güvenlik sürümleri yayımladı. Düzeltilmiş sürümler 22.23.5, 24.22.3 ve 26.13.1. Bunlar Node.js'in kendisindeki 16 güvenlik açığını giderir; bunlardan yedisi yüksek önem derecesinde. Sürümler ayrıca paketlenmiş bağımlılıkları da günceller: llhttp (22.x, 24.x, 26.x), undici (24.x, 26.x) ve sqlite (22.x, 24.x).
En önemli sorunlar, Node.js'in HTTP/2, HTTPS ve TLS için kendi sunucu kodunda yer alır:
- HTTP/2 sunucu çökmesi (24.x ve 26.x): Kimlik doğrulaması yapmayan herhangi bir istemci Node.js sürecinin durmasına neden olabilir. Saldırı için yalnızca varsayılan HTTP/2 yapılandırması ile istek gövdesi tamamen gelmeden yanıt veren bir işleyici yeterlidir. Proje bu davranışın yaygın olduğunu belirtiyor. Saldırı hem TLS üzerinden hem de düz bağlantılarda çalışır.
- HTTP/2 bellek ifşası (üç hat): Bir sunucu, istemciye kendi belleğinden parçalar gönderebilir; buna başka bağlantılara ait yanıtlar da dahildir. 24.22.0 ve 26.9.0 sürümlerinden itibaren bunu istemci kendi başına tetikleyebilir. 22.x ve daha eski 24.x ve 26.x sürümlerinde ise sunucu bir yanıt ortasında bir akışı kapattığında (örneğin boşta kalma zaman aşımından sonra) bu gerçekleşebilir.
- HTTPS bellek ifşası (üç hat): Projeye göre kimlik doğrulaması yapmayan bir istemci, diğer bağlantılardaki belleği okuyabilir; "TLS özel anahtarları ve diğer kullanıcıların istekleri dahil". Bunun için istek gövdesi bitmeden
res.flushHeaders()çağıran ve sonra veriyleres.end()çağıran bir işleyici gerekir. Sızan belleği okumak için saldırganın ayrıca bir istek gövdesini geri gönderen ya da saklayan bir rotaya ihtiyacı vardır. - HTTP/2 kaynak tüketimi (üç hat): Bir istemci, varsayılan HTTP/2 kurulumu olan herhangi bir sunucuyu bellek ve dosya tanımlayıcılarını kalıcı olarak tutmaya zorlayabilir.
- HTTP/2 dosya sunumu (24.x ve 26.x):
stream.respondWithFile()veyastream.respondWithFD()ile dosya sunan sunucuda bir istemci sunucu belleğini bozabilir. Üç hatta da bu tür indirmelerin iptali sunucuyu çökertebilir (orta önem derecesi). - TLS sunucu çökmesi (24.x ve 26.x): Bir istemci,
SNICallback,OCSPRequest,newSessionveyaresumeSessionkancalarını ya daserver.addContext()çağrısını kullanan bir TLS sunucusunu çökertebilir. - TLS istemci sertifikası atlatma (üç hat): Bazı sunucular belirli ana makine adları için daha sıkı istemci sertifikası kuralları uygular. Bu sunucularda, başka bir ana makine adı için onaylanmış bir istemci, TLS 1.2 yeniden pazarlığı sırasında kuralları karşılamadan daha sıkı bir ana makineye geçebilir.
Danışmanlık bu açıkların kullanıldığına dair bir saldırı bildirmiyor.
Kimler etkilenir?
- 22.x (22.23.5 öncesi), 24.x (24.22.3 öncesi) veya 26.x (26.13.1 öncesi) Node.js çalıştıran sunucular.
- 20.x ve 25.x dahil destek süresi dolmuş hatlar bu sürümde düzeltme almaz. Proje, bu sürümlerin her zaman etkilenmiş kabul edilmesi gerektiğini belirtiyor.
- Sunucu tarafındaki ciddi sorunlar yalnızca bir Node.js süreci HTTP/2, HTTPS veya TLS bağlantılarını doğrudan kabul ettiğinde geçerlidir. Örnekler: yerleşik
node:http2,node:httpsveyanode:tlsmodülleri ya da TLS veya HTTP/2'yi sonlandırmak için bunları kullanan çerçeveler. node:httpile oluşturulan düz HTTP sunucuları HTTPS bellek ifşasından etkilenmez.- HTTP/2 çökmesi yalnızca 24.x ve 26.x hatlarını etkiler, 22.x'i etkilemez.
nginx, Apache, HAProxy veya bir yük dengeleyici gibi bir ters proxy TLS ve HTTP/2'yi sonlandırıyor ve Node.js yalnızca ondan düz HTTP/1.1 alıyorsa maruz kalma çok daha düşüktür. Yine de güncelleme yapmalısınız; çünkü sürüm başka düzeltmeler ve bağımlılık güncellemeleri de içeriyor.
Şimdi ne yapmalısınız?
- Tüm Node.js kurulumlarını bulun. Sistem paketlerini, sürüm yöneticilerini (nvm, n, Volta), Docker imajlarını, CI çalıştırıcılarını ve kendi Node.js sürümünü getiren barındırma panellerini unutmayın.
- Hattınızın düzeltilmiş sürümüne güncelleyin: 22.23.5, 24.22.3 veya 26.13.1. Dağıtım veya satıcı paketleri kullanıyorsanız (örneğin NodeSource ya da Linux dağıtımınız), paket kaynağınız bu sürümleri sunar sunmaz güncellemeyi kurun.
- Destek süresi dolmuş sürümlerden çıkın. Hâlâ 20.x, 25.x veya daha eski bir sürüm çalıştırıyorsanız desteklenen bir hatta yükseltin. Danışmanlık, güncelleyemeyen sunucular için geçici bir çözüm listelemiyor.
- Konteyner imajlarını yeniden oluşturun. Güncellenmiş bir Node.js temel imajı ile yeniden oluşturup yeniden dağıtın. Yalnızca ana makineyi güncellemek konteynerlerin içindeki Node.js'i değiştirmez.
- Tüm Node.js süreçlerini yeniden başlatın (systemd birimleri, PM2, Docker konteynerleri vb.) ki yeni çalışma zamanı yüklensin. Ardından uygulamalarınızın normal yanıt verdiğini kontrol edin.
- Maruz kaldıysanız gizli bilgileri yenilemeyi değerlendirin. Danışmanlık, HTTPS bellek ifşası koşullarını karşılayan sunucuların TLS anahtarlarını veya diğer gizli bilgilerini yenilemesi gerekip gerekmediğini belirtmiyor. Koşulları karşılayan ve internetten erişilebilen bir Node.js HTTPS sunucunuz varsa TLS sertifikasını ve anahtarını yenilemeyi düşünün.
Etkilenip etkilenmediğinizi nasıl kontrol edersiniz?
- Her sunucuda ve her konteyner içinde
node -vçalıştırın (docker exec <container> node -v). Hattındaki 22.23.5, 24.22.3 veya 26.13.1 öncesi sürümler ya da 20.x veya 25.x gibi destek süresi dolmuş herhangi bir hat etkilenmiştir. - PM2 ile
pm2 listvepm2 show <app>komutları her uygulamanın hangi Node.js ikilisini ve sürümünü kullandığını gösterir. - Uygulamalarınızın HTTP/2 veya TLS'yi Node.js içinde kendileri sonlandırıp sonlandırmadığını kontrol edin: kodda
http2.createSecureServer,http2.createServer,https.createServer,tls.createServer,respondWithFile,respondWithFD,SNICallbackveaddContextaramasını yapın. - Süreç yöneticinizi ve sistem günlüklerini beklenmeyen Node.js yeniden başlatmaları veya çökmeleri açısından kontrol edin. Bir HTTP/2 sunucusunun tekrarlayan kesilmeleri, çökmeyi tetikleme girişimlerine işaret edebilir.
Kaynaklar
İlgili yazılar
Uyarılar ·
Citrix NetScaler ADC ve Gateway: kritik bellek açıkları hizmet reddine yol açabiliyor (CVE-2026-120868)
Citrix, hizmet reddine yol açabilen dokuz kritik bellek açığını NetScaler ADC ve NetScaler Gateway üzerinde giderdi. CVE-2026-120868 tüm dağıtımları etkiliyor. 14.1-73.57, 13.1-64.39 sürümüne veya eşleşen FIPS derlemelerine güncelleyin.
Uyarılar ·
PostgreSQL CVE-2026-6460: Nesne oluşturabilen veritabanı kullanıcıları sunucuda kod çalıştırabilir
PostgreSQL 18.7, 17.12, 16.16, 15.20 ve 14.25 sürümleri CVE-2026-6460 ve 51 diğer açığı kapatıyor. Nesne oluşturabilen bir veritabanı kullanıcısı, PostgreSQL'i çalıştıran işletim sistemi kullanıcısı olarak kod çalıştırabilir. Sunucuyu ve C eklentilerini birlikte güncelleyin.
Uyarılar ·
Mittwald hosting'e MCP sunucusu üzerinden saldırı: Yönetim hizmetleri çevrimdışı, müşteriler kontrol etmeli
Web barındırma sağlayıcısı Mittwald, bir MCP sunucusu üzerinden gerçekleşen saldırının ardından acil durum modunda. Müşteri yönetim hizmetleri kapatıldı. Müşteriler yalnızca resmi güncellemelere güvenmeli ve hesaplarını ile web sitelerini kontrol etmeye hazırlanmalı.