Hâlâ Node.js 20 mi Kullanıyorsunuz? 11 Kasım Güvenlik Güncellemesi Sizi Kapsamayacak

Node.js 20'nin destek süresi 30 Nisan 2026'da sona erdi ve 11 Kasım güvenlik güncellemesi bu sürümü pas geçiyor. Neleri kaçırdığını, 24'e mi yoksa 26'ya mı geçmeniz gerektiğini, nelerin bozulacağını ve bu hafta geçiş yapamayacaksanız neler yapabileceğinizi öğrenin.

Ashley Innocent

Ashley Innocent

5 November 2026

Hâlâ Node.js 20 mi Kullanıyorsunuz? 11 Kasım Güvenlik Güncellemesi Sizi Kapsamayacak

Kurumsal İçin Apidog

Şirket İçi (On-Premises) Dağıtım

SSO ve RBAC

SOC 2 Uyumlu

Apidog Enterprise'ı Keşfedin

Node.js 20, 11 Kasım 2026'da hiçbir güncelleme almayacak. Güvenlik sürümleri yalnızca 26.x, 24.x ve 22.x sürümlerini kapsıyor; çünkü Node.js 20, 30 Nisan 2026'da kullanım ömrünün sonuna (End-of-Life) ulaştı. Yayınlanan son yamanız 24 Mart tarihli 20.20.2 sürümüydü. O günden bu yana, 20.x için herhangi bir derleme yapılmadan 33 CVE yayınlandı. Bu hafta 24 veya 26 sürümüne geçin.

Bu CVE'ler, 20 sürümünü dışarıda bırakan üç ayrı güvenlik sürümüyle geldi. Dördüncüsüne ise yalnızca birkaç gün kaldı ve ön duyuru, en kritik açığı desteklenen tüm sürümlerde YÜKSEK (HIGH) olarak derecelendiriyor.

11 Kasım nedir ve Node.js 20 neden kapsam dışı bırakıldı?

Node.js projesi; 11 Kasım 2026 Çarşamba günü veya hemen sonrasında yeni 26.x, 24.x ve 22.x derlemelerini yayınlayacak. Henüz hiçbir CVE detayı kamuoyuyla paylaşılmadı ve derlemeler çıkana kadar da gizli tutulacak. Kasım sürümüne geri sayım rehberimiz çalışma zamanı envanterini ve yama günü komutlarını ele aldığından, bu yazıda bunlara değinmiyoruz.

Node.js projesi artık bakımını yapmadığı için Node.js 20 bu listede yer almıyor. End-of-Life (Kullanım Ömrü Sonu) sayfası bu konuda oldukça net: Yeni güvenlik sürümleri açıkları ortaya çıkardığında, “aynı güvenlik açığı EOL durumundaki sürüm serilerini etkilese bile, bunlar için yeni bir sürüm yayınlanmayacaktır.”

Güvenlik bildirimi sizi yakından ilgilendiren bir cümle daha ekliyor: “Bir güvenlik sürümü yayınlandığında, kullanım ömrü sona ermiş (End-of-Life) sürümler her zaman bundan etkilenir.”

Node.js 20 şimdiden neleri kaçırdı?

Node.js 20 kullanım ömrünü tamamladığından beri üç güvenlik sürümü yayınlandı. Hiçbirinde 20.x derlemesi yer almadı.

Güvenlik Bildirimi CVE Sayısı Yüksek Orta Düşük Düzeltilen Sürüm
18 Haziran 2026 12 2 6 4 26.3.1, 24.17.0, 22.23.0
29 Temmuz 2026 11 3 5 3 26.5.1, 24.18.1, 22.23.2
21 Ekim 2026 10 4 3 3 26.12.1, 24.22.1, 22.23.4
Toplam 33 9 14 10 20.x derlemesi yok

Bu düzeltmelerin temas ettiği kodlar, bir API sunucusunun gün boyu çalıştırdığı kodların ta kendisidir:

Bu listeyi dikkatle inceleyin. Node.js projesi kullanım ömrü dolmuş sürümleri değerlendirmediğinden, güvenlik bildirimlerinde yalnızca desteklenen sürümlerin adı geçer. Bu hataların bazıları 20 sürümünde bulunmayan kodlarda yer alabilir: örneğin bir Ekim CVE'si, projenin yalnızca 26.x ve 24.x sürümleriyle sınırlandırdığı bir regresyondur. Dolayısıyla Node.js 20'deki her bir CVE'nin dürüst durumu yamasız ve değerlendirilmemiş şeklindedir. Kimse güvende olduğunuzu söylemedi ve kimse bunu sizin için kontrol etmeyecek.

Hata zincirleri durumu daha da vahim hale getiriyor. Ekim ayındaki DNS düzeltmesi bir Haziran düzeltmesini tamamlıyor; Temmuz ayındaki bir düzeltme ise bir diğer Haziran düzeltmesinin üzerine inşa ediliyor. Sonraki her yama, sizde bulunmayan bir yamanın devamı niteliğindedir.

Timeline of Node.js 20: last build on March 24, 2026, End-of-Life on April 30, then security releases on June 18, July 29 and October 21 with no 20.x fix, and the November 11 release still pending

“Ama hâlâ çalışıyor”

Çalışıyor. Asıl sorun da bu zaten.

Kullanım ömrü dolmuş bir çalışma zamanı aniden hata verip çökmez. node -v aynı sürümü yazdırır, testleriniz geçer ve panolarınız yeşil kalmaya devam eder. Risk ise gözünüzün üzerinde olmadığı yerlerde ortaya çıkar:

Hedefinizi belirleyin: 22 değil, Node.js 24 veya 26

En kısa ve zahmetsiz yolu arıyorsanız bu hafta 24 sürümüne geçin. Kaldırılan özellikleri şimdiden göğüsleyebiliyorsanız ve en uzun vadeli desteği istiyorsanız 26 sürümünü seçin. 22 sürümünü ise doğrudan atlayın: Kasım ayı düzeltmesini alıyor olsa da desteği altı aydan kısa bir süre sonra, 30 Nisan 2027'de sona eriyor; yani bahar geldiğinde aynı göç sürecini tekrarlamak zorunda kalırsınız.

Sürüm Serisi Durum 5 Kasım İtibarıyla En Güncel Destek Bitişi En Uygun Senaryo
26.x “Lithium” 28 Ekim 2026'dan beri Aktif LTS 26.13.0 30 Nis 2029 Şu an baştan sona yeniden test edebileceğiniz servisler
24.x “Krypton” 20 Ekim 2026'dan beri Bakım (Maintenance) LTS 24.22.2 30 Nis 2028 20 sürümünden en hızlı ve güvenli çıkış yolu
22.x “Jod” Bakım (Maintenance) LTS 22.23.4 30 Nis 2027 Bugün göç etmeye değmez

Tarihler Node.js sürüm takviminden alınmıştır. Kararınızı kesinleştirmeden önce altyapı platformunuzu kontrol edin. Örneğin Lambda üzerinde Node.js 26 çalışma zamanı genel önizlemede (public preview) olup Lambda SLA kapsamına dahil değildir; bu nedenle şu anda canlı ortamlar için orada 24 sürümü daha güvenli bir hedeftir.

Bar chart of Node.js support windows from November 2026: 22.x ends April 30, 2027, 24.x ends April 30, 2028, and 26.x ends April 30, 2029

Göç adımları ve nelerin bozulabileceği

Bu tablodaki tüm bilgiler 22.0.0, 24.0.0, 25.0.0 ve 26.0.0 sürümlerinin resmi sürüm notlarından ve v22'den v24'e geçiş rehberinden derlenmiştir. Bu liste tüm değişiklik günlüğü değil, API servislerine odaklanan özet bir listedir.

Gelen Sürüm Değişiklik Kimi Etkiler
22 import ... assert { type: 'json' } kaldırıldı; yerine with kullanın JSON içe aktaran ESM kodları
22 crypto.createCipher() ve createDecipher() kaldırıldı Eski şifreleme kodları
23 ve 24 Önceden derlenmiş 32-bit Windows veya 32-bit armv7 Linux ikili dosyaları sunulmuyor; minimum macOS 13.5 Eski sunucular ve uç (edge) cihazlar
24 Güvenlik seviyesi 2'de OpenSSL 3.5: 2048 bit altındaki RSA, DSA ve DH anahtarları, 224 bit altındaki ECC anahtarları ve RC4 yasaklandı mTLS ve eski upstream servisler
24 tls.createSecurePair kaldırıldı; url.parse() çalışma zamanında kullanım dışı bırakıldı Eski ağ kodları
24 Daha sıkı fetch() uyumluluğu, AbortSignal doğrulaması; stream ve pipe hataları artık hata fırlatıyor HTTP istemcileri, vekil sunucular (proxy)
24 V8 13.6; eklentiler (addons) C++20 gerektirebilir Yerel modüller (native modules)
25 (hedef 26 ise) SlowBuffer ile fs.F_OK, R_OK, W_OK, X_OK kaldırıldı; Corepack artık birlikte gelmiyor Eski yardımcı araçlar, Corepack üzerinden Yarn veya pnpm
25 (hedef 26 ise) TLS servername olarak IP adresi kullanımı kullanım ömrü sonuna taşındı IP ile bağlanan istemciler
26 _stream_* modülleri ve writeHeader() kaldırıldı; module.register() çalışma zamanında kullanım dışı bırakıldı; Undici 8 Eski stream kodları, özel yükleyiciler (custom loaders)

En çok can yakabilecek olan, sessizce gelen OpenSSL satırıdır. Kodunuzda hiçbir değişiklik olmasa bile, eski bir iş ortağının sistemiyle yapılan el sıkışma (handshake) çalışma zamanında başarısız olur.

Ayrı bir dalda (branch); .nvmrc, engines, Dockerfile ve CI yapılandırmanızı hedef sürüme güncelleyin (temiz bir makine için Node.js kurulum rehberinden yararlanabilirsiniz). Ardından yerel modüllerin yeniden derlenmesi için bağımlılıkları sıfırdan yükleyin, kaldırılan API'leri tarayın, resmi codemod'ları çalıştırın ve servisi kullanım dışı (deprecation) izleme açık şekilde başlatın:

nvm install 24 && nvm use 24
rm -rf node_modules && npm ci

grep -rnE "assert \{ *type|createCipher\(|createDecipher\(|url\.parse\(|fs\.[FRWX]_OK|SlowBuffer|createSecurePair|_stream_[a-z]+|module\.register\(" \
  --include="*.js" --include="*.mjs" --include="*.ts" --exclude-dir=node_modules .

npx codemod run @nodejs/import-assertions-to-attributes
npx codemod run @nodejs/crypto-createcipheriv-migration
npx codemod run @nodejs/tls-create-secure-pair-to-tls-socket
npx codemod run @nodejs/fs-access-mode-constants

NODE_OPTIONS="--trace-deprecation" npm start

Codemod çıktılarını elle gözden geçirin. createCipher için üretilen kod konusunda durum açıktır: Oluşturulan kod, eski API ile şifrelenmiş verileri çözemez; dolayısıyla böyle bir veriniz varsa veri göçü planlayın.

Node.js sitesinde henüz 24'ten 26'ya geçiş rehberi bulunmuyor; bu nedenle bu geçiş için 25.0.0 ve 26.0.0 sürüm notlarını kullanın.

API'nin yeni sürümde aynı davrandığını doğrulayın

Birim testleri, yeni bir TLS yığınının ve HTTP istemcisinin gerçek trafikte nasıl davranacağını göstermez. İki veya üç ana sürüm birden atlarken çalışan servisin öncesi ve sonrasını karşılaştırmak istersiniz; bu da kodlama asistanınız (coding agent) için biçilmiş bir kaftandır.

Apidog CLI; Claude Code, Codex veya Cursor'ın terminal üzerinden Apidog test senaryolarınızı çalıştırmasını sağlar. Bir defaya mahsus kurun:

npm install -g apidog-cli@latest
apidog login --with-token <YOUR_TOKEN>
npx -y skills add https://apidog.com   # pick your agent when prompted

Ardından asistanınıza şu komutu (prompt) verin:

My service runs on Node.js 20 in staging. Run Apidog test suite <suiteId> in project
<projectId> against environment <envId> and save reports to reports/node20. When I
redeploy on Node.js 24, run the same suite into reports/node24. List every request
whose status, body, or TLS behavior changed. Then read the service logs for deprecation
warnings and check each failure against the 22, 24, and 25 release notes: removed APIs,
changed defaults, stricter fetch and AbortSignal handling, OpenSSL key size rejections.

Asistan, göçün her iki aşamasında da aynı test paketini çalıştırır:

apidog run --test-suite <suiteId> --project <projectId> -e <envId> \
  -r cli,junit --out-dir reports/node20

# redeploy the service on the target line, restart it

apidog run --test-suite <suiteId> --project <projectId> -e <envId> \
  -r cli,junit --out-dir reports/node24

Karşılaştırmanın sağlıklı ve güvenilir olmasını sağlayan iki kritik nokta vardır:

Göç başarıyla tamamlandıktan sonra bu adımı CI/CD ardışık düzeninizde (pipeline) tutmaya devam edin. İş akışının ayrıntılarını Apidog CLI CI/CD rehberinde, asistan kurulumunu ise Claude Code adım adım kullanım kılavuzunda bulabilirsiniz.

Bu hafta geçiş yapamıyorsanız

Yamalanmış özel derlemeler satın alın. Node.js End-of-Life sayfası, OpenJS Ekosistem Sürdürülebilirlik Programı kapsamında üç iş ortağını listeler. HeroDevs güvenlik yamalarıyla Never-Ending Support sunar. TuxCare'in Endless Lifecycle Support hizmeti kullanım ömrü bitmiş sürümler için düzeltmeleri geriye dönük uygular. NodeSource ise yükseltme değerlendirmeleri ve destek sağlar. Proje bunu geçici bir çözüm olarak nitelendiriyor ve gerçekten de öyle.

Sürece erişebilecek alanı daraltın. Bu adımlar yukarıdaki hata türlerine maruz kalma riskinizi azaltır; ancak hiçbir şeyi kökünden düzeltmez:

Riski kayıt altına alın. Bu durumun "geçici" olarak kalmaması için bir sorumlu, net bir göç tarihi ve telafi edici kontroller belirleyin.

button

Sıkça Sorulan Sorular

Node.js 20 hâlâ destekleniyor mu? Hayır. 30 Nisan 2026'da kullanım ömrünü (End-of-Life) tamamladı. Son derleme 24 Mart 2026 tarihli 20.20.2 sürümüdür ve proje yeni bir derleme yayınlamayacaktır.

Node.js 20, 11 Kasım'daki güvenlik açıklarına karşı savunmasız mı? Henüz hiçbir CVE detayı kamuoyuyla paylaşılmadığı için hangilerinin geçerli olduğunu kimse kesin olarak söyleyemez. Ancak güvenlik bildirimi, yeni bir güvenlik sürümü çıktığında kullanım ömrü bitmiş sürümlerin her zaman etkilendiğini ve projenin bunları artık ayrı ayrı değerlendirmediğini belirtmektedir.

Bunun yerine Node.js 22 sürümüne yükseltmeli miyim? Hayır. En küçük sürüm sıçraması bu olsa da, desteği 30 Nisan 2027'de sona eriyor. 24 sürümüne geçmek size bir yıl daha destek kazandırır; 26 sürümü ise iki yıl kazandırır.

Node.js 24 mü yoksa 26 mı? Bu hafta acil bir çıkış yoluna ihtiyacınız varsa veya kullandığınız platform henüz 26 sürümünü tam olarak desteklemiyorsa 24'ü seçin. Her şeyi hemen baştan test edebilecek durumdaysanız, desteği 30 Nisan 2029'a kadar sürecek olan 26 sürümünü tercih edin.

Node.js 25 kullanıyorum. Bu durum benim için de geçerli mi? Evet. Node.js 25, son derlemesi olan 25.9.0 ile birlikte 1 Haziran 2026'da kullanım ömrünü tamamladı. Kasım ayındaki düzeltmeleri o da almayacak ve 26 sürümüne geçmek yalnızca bir ana sürüm uzağınızda.

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin