Ulaşım
- Adres:Batıkent Mh. 8910 Sk. 6. Etap 1H No: 18 Yeni Toki Eyyübiye / Şanlıurfa (Yeni Alım Satım Karşısı)
- Telefon:0 (545) 528 88 93
- eMail: info@alestaweb.com
Kritik bir güvenlik açığı! Node.js'in async_hooks modülünde keşfedilen CVE-2025-59466 zafiyeti, tek bir kötü niyetli istek ile sunucunuzu çökertebilir. React Server Components, Next.js ve APM araçları kullanan hemen herkes etkileniyor. Alesta Web olarak bu yazıda güvenlik açığının detaylarını, etkilenen sürümleri ve çözüm yöntemlerini paylaşıyoruz. Hemen güncelleyin!
Node.js, Ocak 2026'da kritik bir güvenlik güncellemesi yayınladı. CVE-2025-59466 olarak tanımlanan bu açık, "neredeyse tüm production Node.js uygulamalarını" etkiliyor denilebilir.
Sorun şurada: async_hooks.createHook() aktifken, "Maximum call stack size exceeded" hatası normal hata yakalama mekanizmalarını atlıyor. Yani try-catch veya process.on('uncaughtException') bu hatayı yakalayamıyor ve uygulama direkt çöküyor.
Bu açık sayesinde bir saldırgan, tek bir kötü niyetli HTTP isteğiyle Node.js sunucunuzu çökertebilir. Sunucu yeniden başlatılana kadar hizmet dışı kalır. CVSS skoru: 7.5 (Yüksek)
Alesta Web ekibi olarak bu güvenlik açığını çok ciddiye alıyoruz. Eğer Node.js tabanlı bir uygulama çalıştırıyorsanız, bu yazıyı sonuna kadar okuyun ve hemen güncelleme yapın.
async_hooks API'si düşük seviyeli bir debugging aracı olarak başladı. Ama zamanla React Server Components, Next.js ve APM araçları gibi kritik bileşenlerin temel bağımlılığı haline geldi.
Şu uygulamalar doğrudan etkileniyor:
AsyncLocalStorage, Node.js 14'te stable olarak eklendi ve request context'i tutmak için yaygın olarak kullanılıyor. Eğer uygulamanızda loglama, tracing veya request-scoped değişkenler varsa, muhtemelen etkileniyorsunuz.
Özetle: Modern bir Node.js web uygulaması çalıştırıyorsanız, büyük ihtimalle bu açıktan etkileniyorsunuz. Alesta Web olarak müşterilerimize hemen güncelleme yapmalarını öneriyoruz.
Biraz daha teknik detaya girelim. Normal şartlarda JavaScript'te "Maximum call stack size exceeded" hatası yakalanabilir bir hatadır:
// Bu hata normalde yakalanabilir
try {
function infiniteRecursion() {
infiniteRecursion();
}
infiniteRecursion();
} catch (error) {
console.log('Hata yakalandı:', error.message);
// Uygulama çalışmaya devam eder
}
Ancak async_hooks.createHook() aktifken, hata propagasyonu bozuluyor:
const async_hooks = require('async_hooks');
// APM veya tracing aracı bu hook'u oluşturur
async_hooks.createHook({
init() {},
before() {},
after() {},
destroy() {}
}).enable();
// Şimdi stack overflow hatası yakalanamaz!
// process.on('uncaughtException') bile çalışmaz
// Uygulama direkt çöker - CRASH!
Sorunun kökeni: Hata, async_hooks işleme alınmadan önce V8 engine tarafından atılıyor. async_hooks bu hatayı işlerken kendisi de stack overflow oluşturuyor ve hata kullanıcı koduna hiç ulaşamıyor.
Bir saldırgan, derin iç içe JSON veya recursive yapılar içeren HTTP isteği göndererek bu açığı tetikleyebilir. Sunucu bu isteği işlerken stack overflow oluşur ve uygulama çöker.
Alesta Web ekibi olarak belirtmek isteriz: Bu açık 9 yıldır Node.js'te mevcuttu! async_hooks 2017'de Node.js 8'de eklenmişti ve sorun o zamandan beri potansiyel olarak sömürülebilir durumdaydı.
Hangi Node.js sürümleri etkileniyor ve hangilerinde yama mevcut?
| Node.js Sürümü | Durum | Yamalı Sürüm |
|---|---|---|
| Node.js 8.x - 18.x | ❌ End-of-Life | Yama YOK - Desteklenmiyor |
| Node.js 20.x | ✅ Yamalı | 20.20.0 |
| Node.js 22.x | ✅ Yamalı | 22.22.0 |
| Node.js 24.x | ✅ Yamalı | 24.13.0 |
| Node.js 25.x | ✅ Yamalı | 25.3.0 |
En az Node.js 20.20.0 veya üzeri sürüme güncelleyin. Node.js 24 ve sonrası için AsyncLocalStorage, V8'in AsyncContextFrame'i üzerinde yeniden implemente edildi. Bu sayede bu tür hatalar tamamen önleniyor.
Çözüm basit: Hemen güncelleyin! İşte adımlar:
# Mevcut sürümü kontrol edin node --version # nvm ile güncelleme (önerilen) nvm install 22.22.0 nvm use 22.22.0 # Veya doğrudan indirme # https://nodejs.org/en/download/ adresinden # Docker kullanıyorsanız FROM node:22.22.0-alpine
{
"engines": {
"node": ">=20.20.0 || >=22.22.0"
}
}
Alesta Web olarak ek güvenlik önlemleri de öneriyoruz:
const express = require('express');
const app = express();
// JSON body limiti
app.use(express.json({
limit: '100kb',
// Derin nesting'i önle
reviver: (key, value) => {
// Derinlik kontrolü ekleyebilirsiniz
return value;
}
}));
// Rate limiting
const rateLimit = require('express-rate-limit');
app.use(rateLimit({
windowMs: 15 * 60 * 1000,
max: 100
}));
Node.js 18 veya daha eski sürüm kullanıyorsanız ve güncelleyemiyorsanız, APM araçlarını devre dışı bırakmayı düşünün. Bu geçici bir çözüm ama performans izleme kaybına yol açar.
Bu makalede kullanılan bilgiler aşağıdaki güvenilir kaynaklardan derlenmiştir:
Alesta Web olarak güvenlik güncellemelerini yakından takip ediyoruz.
CVE-2025-59466 güvenlik açığını kapatmak için Node.js'i hemen güncelleyin! Alesta Web olarak production sunucularınızın güvenliğini sağlamanızı öneriyoruz.
Hızlı Özet / Quick Summary:
Faydalı Linkler / Useful Links:
© 2026 AlestaWeb - Tüm hakları saklıdır.