Saldırı altında mısınız? Olay müdahalesi için bize ulaşın

info@angelforce.eu
Güvenlik açıkları

Node.js Ekim 2026 güvenlik sürümü: Brotli RCE ve TLS atlatmaları

Node.js 22.23.4, 24.22.1 ve 26.12.1 on açığı kapatıyor; biri kod çalıştırmaya izin veren Brotli kod çözücü hatası. Kimler etkileniyor, nasıl güncellenir ve doğrulanır.

Diğer diller:EnglishDeutschFrançaisEspañolItalianoPolskiNederlandsEesti

İllüstrasyon: Node.js Ekim 2026 güvenlik sürümü: Brotli RCE ve TLS atlatmaları

Node.js projesi 21 Ekim 2026’da 22.23.4, 24.22.1 ve 26.12.1 sürümlerini yayımladı. Bu sürümler, dördü yüksek önem derecesiyle derecelendirilmiş on güvenlik açığını kapatıyor. En ciddisi olan CVE-2026-111497, Node’un Brotli kod çözücüsünde bir sınır dışı yazma (out-of-bounds write) açığıdır: bozuk biçimlendirilmiş sıkıştırılmış veri belleği bozabilir; barındırma şirketi Vercel de araştırmacıların bunu süreç belleğini okumak ve Node.js sürecinin yetkileriyle komut çalıştırmak için kullandığını bildiriyor. Diğer iki yüksek önem dereceli açık, bir TLS sertifikasının olmaması gerektiği halde ana bilgisayar adı (hostname) denetiminden geçmesine izin veriyor. Node.js 20 ve 25 ömrünü tamamladı ve bunlar için düzeltme yayımlanmayacak.

Hangi sürümler düzeltildi

Sürüm dalıDüzeltildiği sürümDurum
26.x26.12.1güncel
24.x (LTS)24.22.1destekleniyor
22.x (LTS)22.23.4destekleniyor
25.xdüzeltme yokömrünü tamamladı, 26 veya 24’e geçin
20.xdüzeltme yok30 Nisan 2026’dan beri ömrünü tamamladı, 22 veya 24’e geçin

On açık nedir

CVEÖnemSorunDallar
CVE-2026-111497YüksekBrotli kod çözücüsünde sınır dışı yazma, kod çalıştırmaya yol açabilir26, 24, 22
CVE-2026-105483YüksekIP adresi tam genişlikli rakamlarla yazıldığında TLS ana bilgisayar adı denetimi geçiyor26, 24
CVE-2026-106069YüksekAna bilgisayar adı gevşek biçimde bir IP adresine çözümlendiğinde TLS ana bilgisayar adı denetimi geçiyor26, 24, 22
CVE-2026-105482Yüksekdns.resolve adları NUL karakterinde kesiyor26, 24, 22
CVE-2026-105481OrtaKeep-alive soketi, istek gönderilmeden önce yazılmış bir yanıtı kabul edebiliyor26, 24, 22
CVE-2026-106072OrtaKanonik olmayan IPv4 ana bilgisayarlarda sertifikadaki bir DNS adı, bir IP uç noktasının kimliğini doğrulayabiliyor26, 24, 22
CVE-2026-106074OrtarandomUUID() ve randomInt(), başlangıç anlık görüntülerinde (startup snapshot) ve tek çalıştırılabilir dosyalı uygulamalarda (single executable app) aynı değerleri tekrar ediyor26, 24, 22
CVE-2026-106073Düşükfs.realpathSync ile Permission Model atlatması26, 24, 22
CVE-2026-106070DüşükZipFile, başarısız bir başlık denetiminden sonra saldırganın denetimindeki baytları döndürüyor26
CVE-2026-106071DüşükPermission Model, joker karakterler (wildcard) üzerinden gereğinden fazla dosya erişimi veriyor26

Sürümler ayrıca paketle gelen bileşenleri de güncelliyor: c-ares, Undici, güvenilir CA listesi (ele geçirilmiş eMudhra ara CA’sı kaldırıldı), 24 ve 22 için OpenSSL ve 22 için SQLite.

Brotli açığından kimler etkileniyor

Node.js Brotli’yi kendi başına çözmez. Kodunuz ya da kullandığı bir kütüphane, başkasının denetimindeki Brotli verisini açıyorsa etkilenirsiniz. Bu, kulağa geldiğinden daha sık olur:

  • Yerleşik fetch(), Content-Encoding: br içeren yanıtları otomatik olarak çözer. Kullanıcıların seçtiği URL’leri, webhook’ları ya da üçüncü taraf API’leri çağıran bir servis kötü amaçlı bir yanıt alabilir.
  • axios, got ve node-fetch de sıkıştırılmış yanıtları varsayılan olarak çözer.
  • Express 5 (body-parser 2) Brotli ile sıkıştırılmış istek gövdelerini varsayılan olarak çözer; yani bir API veriyi doğrudan bir saldırgandan alabilir.
  • Yüklenen dosyalar ya da üçüncü taraf verileri üzerinde yapılan her zlib.brotliDecompress, zlib.createBrotliDecompress veya DecompressionStream çağrısı.

Önce bunların internetle buluştuğu yerleri yamalayın: sıkıştırılmış gövde kabul eden herkese açık API’ler, kullanıcının verdiği URL’leri çağıran servisler ve yüklenen dosyaları açan her şey.

TLS açıkları esas olarak, bir saldırgan istemcinizin güvendiği bir CA’dan IP biçiminde bir DNS adı içeren sertifika alabildiğinde önem kazanır; DNS açığı ise kodunuz dışarıdan gelen girdiyi dns.resolve işlevine verdiğinde. Düzeltme commit’ine göre TLS sorunlarının istismarı kolay değildir, ancak aynı güncelleme bunları da kapatıyor.

Adım 1: her Node.js çalışma ortamını bulun

Linux’ta, sürümüyle birlikte her node ikili dosyasını listeleyin:

sudo find / -xdev -type f -name node -perm -u+x 2>/dev/null | while read -r n; do echo "$n: $("$n" --version 2>/dev/null)"; done

Çalışan süreçlerin hangi çalışma ortamını kullandığını kontrol edin:

for p in $(pgrep -x node); do echo "$p $(sudo readlink -f /proc/$p/exe)"; done

Docker’da çalışan her konteyneri kontrol edin:

for c in $(docker ps --format '{{.Names}}'); do echo "$c: $(docker exec "$c" node --version 2>/dev/null)"; done

Ayrıca sürüm yöneticilerini (nvm, fnm, Volta, asdf), CI runner’larını, derleme imajlarını, Electron uygulamalarını ve çalışma ortamı sürümünün proje yapılandırmasında belirlendiği serverless fonksiyonları da kontrol edin.

Adım 2: güncelleyin

NodeSource paketleriyle Ubuntu ve Debian:

sudo apt update && sudo apt install --only-upgrade nodejs && node --version

nvm ile:

nvm install 24.22.1 && nvm alias default 24.22.1

Konteynerler: temel imajı sabit bir sürüme çevirin, örneğin node:24.22.1-alpine ya da node:22.23.4-bookworm-slim; ardından yeniden derleyip yeniden dağıtın. Ana makineyi güncellemek, konteynerin içinde çalışanı değiştirmez.

Serverless ve barındırma platformları: Vercel’de 22.x ve 24.x üzerindeki projeleri Vercel yamalar ve Vercel gelen saldırıya karşı güvenlik duvarı kuralları ekledi; hâlâ 20.x üzerinde olan projelerin 22.x ya da 24.x’e geçip yeniden dağıtılması gerekir. Diğer platformlarda sağlayıcının duyurusunu kontrol edin ve yamalı çalışma ortamı sunulduğunda yeniden dağıtın.

Ubuntu’nun kendi nodejs paketi gibi dağıtım paketleri çoğu zaman geride kalır. node --version çıktısı 22.23.4, 24.22.1 ya da 26.12.1’i (veya bu CVE’leri adıyla anan bir dağıtım derlemesini) göstermiyorsa resmî sürümleri kullanın.

Adım 3: yeniden başlatın ve doğrulayın

Çalışan bir süreç, yeniden başlatılana kadar eski çalışma ortamını korur. Linux’ta bir paket güncellemesinden sonra bu komut, değiştirilmiş ikili dosyayı hâlâ çalıştıran node süreçlerini listeler:

sudo ls -l /proc/*/exe 2>/dev/null | grep -i 'node.*(deleted)'

Bu servisleri yeniden başlatın (örneğin systemctl restart, pm2 reload all ya da yeni bir dağıtımla) ve 1. adımdaki komutları yeniden çalıştırın.

Bugün güncelleyemiyorsanız

Bunların hiçbiri güncellemenin yerini tutmaz, ancak birkaç gün için riski azaltır:

  • Brotli ile sıkıştırılmış istek gövdelerini uygulamaya ulaşmadan reddedin; örneğin NGINX’te if ($http_content_encoding ~* br) { return 415; } ile ya da gövde ayrıştırıcılardan (body parser) önce çalışan bir middleware ile.
  • Güvenilmeyen sunuculara yapılan isteklerde otomatik açmayı kapatın: axios ve got’ta decompress: false, node-fetch’te compress: false ya da sıkıştırmayı açmayan undici request(). Yerleşik fetch() kapatılamaz.
  • Kullanıcının verdiği URL’lerin çağrılmasını, mümkün olan en az yetkiyle ayrı bir süreçte çalıştırın.
  • Dışarıdan gelen girdiyi dns.resolve işlevine vermeden önce NUL karakteri içeren adları reddedin.

Hangi servislerinizin güvenilmeyen verileri çözdüğünden emin değilseniz ya da üretim sistemini kesintisiz güncellemek için yardıma ihtiyacınız varsa güvenli yazılım ve yönetilen güvenlik ekiplerimiz size yardımcı olabilir.

Nasıl yardımcı olabiliriz

Güvenli yazılım

Güvenliği yazılıma ilk satırdan itibaren yerleştirir, kendi güvenlik araçlarımızı da geliştiririz.

Bize yazın
AngelForce ekibi

Bu yazıyı AngelForce ekibi hazırladı: Avrupa genelindeki kurumların sistemlerini test eden, izleyen ve koruyan; CEH, LPT Master ve CISA sertifikalı güvenlik danışmanları.

Aşağıda listelenen herkese açık kaynaklardan yapay zekâ desteğiyle yazıldı ve yayından önce AngelForce ekibi tarafından incelendi.

Kaynaklar

  1. nodejs.org/en/blog/vulnerability/october-2026-security-releases
  2. vercel.com/kb/bulletin/node-js-security-advisory
  3. atlasum.net/blog/cve-2026-111497-nodejs-brotli-decoder
  4. lilting.ch/en/articles/nodejs-tls-dns-brotli-security-release
  5. wardio.net/guides/nodejs-brotli-cve-2026-111497/

Güvenlik açıkları hakkında yazılar

Neyi korumanız gerektiğini anlatın

Altyapınızı ve hedefinizi kısaca yazın, size e-postayla dönelim.

Bize yazın
info@angelforce.eu

AngelForce OÜ · Tallinn, Estonya