
Next.js’te iki kritik RCE kapatıldı: 15.5.28 veya 16.4.1’e geçin

Next.js ekibi, 14 Ekim 2026 güvenlik duyurusunda iki kritik uzaktan kod çalıştırma (RCE) açığı ve yüksek önem dereceli bir hizmet engelleme (DoS) açığı için 15.5.28 ile 16.4.1 sürümlerinin yayımlandığını bildirdi. Kritik açıklar, belirli koşullarda Cache Components ile SVG görüntü işlemeyi; DoS açığı ise App Router içindeki Server Actions kullanımını etkiliyor.
Geliştirici açısından karar açık: etkilenen bir sürüm çalışıyorsa uygun yamalı dala geçmek, bağımlılıkları yeniden kurup uygulamayı derlemek ve yeni dağıtımı doğrulamak gerekiyor. Hangi açığın uygulamada kullanılabilecek bir yola sahip olduğu ise sürümün yanında yönlendiriciye, etkin özelliklere, SVG girdisinin kaynağına ve sunucu ortamına bağlı. Bu ayrım incelemenin kapsamını belirler; yamalı sürüme geçiş ihtiyacını ortadan kaldırmaz.
Hangi yapılandırma hangi açıktan etkileniyor?
İlk kontrol, üretimde çalışan Next.js sürümü ile uygulamanın gerçekten kullandığı işlevler arasında yapılmalı. App Router kullanmak tek başına Cache Components açığının bütün koşullarını karşılamaz; Pages Router kullanmak da görüntü işleme yolunun güvenli olduğu anlamına gelmez. Açıkları ayrı değerlendirmek, önceliği doğru belirlemeye yardımcı olur.
- Cache Components: Kritik RCE, Next.js 16 kullanan App Router uygulamalarında Cache Components etkinse ve bir use cache işlevi birden fazla typed array döndürüyorsa gündeme gelir. Belirleyici olan yalnızca yönergenin kodda bulunması değil, bu dönüş biçiminin çalışmasıdır.
- SVG işleme: Diğer kritik RCE, Next.js’in görüntü optimizasyonunda kullandığı üst bağımlılıkta ortaya çıkar. Riskin değerlendirilmesinde SVG’nin savunmasız işleme yoluna ulaşması ve Next.js’in glibc tabanlı Linux üzerinde çalışması önemlidir.
- Server Actions: Yüksek önem dereceli DoS, en az bir Server Action tanımlayan App Router uygulamalarını etkiler. Özel hazırlanmış istekler aynı süreçte aşırı CPU kullanımına neden olup sonraki isteklerin işlenmesini engelleyebilir. Pages Router kullanan veya Server Actions kullanmayan uygulamalar bu DoS koşulunu karşılamaz.
Bu karar ağacında uygulamanın kaynak kodu kadar üretim derlemesi de önem taşır. Örneğin farklı dağıtım hedeflerinde görüntü işleme yolu veya çalışma ortamı değişiyorsa yalnızca yerel geliştirme ortamına bakarak SVG riskine karar verilemez. App Router kullanan projelerde Cache Components ve Server Actions ayrı ayrı işaretlenmeli; biri kullanılmıyor diye diğerinin de kapsam dışında olduğu varsayılmamalı.
Cache Components ve Server Actions için yamanın yerini alan önlem yok
Cache Components açığının dar bir tetiklenme koşulu var, fakat etkilenen uygulamalar için bilinen bir geçici çözüm bulunmuyor. Birden fazla typed array döndüren use cache işlevlerini saptamak maruziyeti anlamaya yarar; işlevin dönüşünü değiştirmeye dayanan yerel bir inceleme, yayımlanan yamanın yerine geçmez. Duyurudaki yükseltme önerisi, benzer bir işlev görülmese bile geçerli.
Server Actions açığında da savunmasız yol, App Router uygulamasında tanımlı bir Server Action bulunmasına bağlı. İşlenen isteğin aynı süreçte sonraki istekleri bloke edebilmesi, özellikle süreç paylaşan dağıtımlarda kullanılabilirlik sorunu yaratır. Bu açık için de uygulanabilir çözüm yamalı sürüme geçmektir; yalnızca bir özelliğin seyrek kullanılması, özel hazırlanmış isteğin uç noktaya ulaşmasını engellemez.
SVG açığında sharp sürümü neden ayrıca kontrol edilmeli?
Next.js’in SVG güvenlik kaydı, etkilenen 10.0.0–15.5.27 aralığını ve 16.4.0’a kadarki etkilenen 16 sürümlerini, yamalı 15.5.28 ile 16.4.1 sürümlerini ve sharp 0.35.5 veya üzerini geçici önlem olarak listeliyor. Açık, glibc tabanlı Linux’ta görüntü optimizasyonu için kullanılan bir üst kütüphanedeki bellek hatasıyla ilgili. Dolayısıyla bir projede SVG dosyası bulunması tek başına yeterli koşul değil; ilgili girdinin savunmasız görüntü işleme yolundan geçmesi gerekiyor.
Geçici önlem uygulanıyorsa doğrudan bağımlılık beyanı yerine Next.js’in kullandığı çözümlenmiş sharp sürümü kontrol edilmeli. Paket yöneticisinin kilit dosyası ve dağıtımda kurulan bağımlılık ağacı bu yüzden önemlidir. Next.js’i yamalı sürüme yükseltmek düzeltilmiş sharp sürümünün sağlanmasını hedefler; buna rağmen kurulu sürümü doğrulamak, özellikle mevcut kilit dosyasıyla yapılan güncellemelerde yerinde bir kontroldür. sharp önlemi Cache Components RCE’sini veya Server Actions DoS’unu gidermez.
Netlify’de aynı açıkların etkisi neden farklı?
Netlify’nin etki notuna göre platformda next/image istekleri Image CDN üzerinden sunuluyor; bu yüzden söz konusu görüntü optimizasyonu yolu Netlify işlevinde çalışmıyor. Ancak güvenilmeyen girdiyi next/og ImageResponse ile işleyen uygulamalarda aynı kusura ulaşılabiliyor. Netlify bu yoldaki etkiyi kod çalıştırma yerine işlev çağrısının çökmesi olarak değerlendiriyor.
Netlify’nin sunucusuz mimarisinde Server Actions kaynaklı aşırı CPU kullanımı başka isteklere sınırlı ölçüde yansıyor, fakat kötüye kullanım işlev maliyetini artırabiliyor. Bu değerlendirme platformun kendi çalıştırma biçimine özgü; başka bir barındırma ortamına doğrudan taşınmamalı. Ayrıca herkese açık dağıtım önizlemeleri ve dal dağıtımları eski bağımlılıklarla erişilebilir kalabilir. Ana üretim adresi güncellense bile bu adreslerin durumu ayrı kontrol gerektirir.
Yamalı sürüme geçiş nasıl doğrulanmalı?
Geçiş, depodaki sürüm aralığını değiştirmekle tamamlanmaz. Önce üretimde kurulu next sürümü ve kilit dosyasında çözümlenen sürüm saptanmalı; ardından App Router, Cache Components, Server Actions ve SVG işleme yolları belirlenmeli. SVG için üretim ortamının glibc tabanlı Linux olup olmadığı ve kurulu sharp sürümü de kaydedilmeli. Böylece güncelleme sonrası hangi işlevlerin yeniden çalıştırılacağı netleşir.
- Uygulamanın bulunduğu dala uygun yamalı Next.js sürümüne yükseltin ve kilit dosyasını aynı değişiklikle güncelleyin. Daha eski bir ana sürümde kalan projede geçişin uyumluluk etkisini derleme sırasında ele alın.
- Temiz bağımlılık kurulumu yapıp üretim derlemesini yeniden alın ve dağıtın. Çalışan dağıtımın yeni bağımlılık ağacını kullandığını, ilgili sayfaların, Server Action uç noktalarının ve varsa SVG işleme yolunun olağan isteklerle çalıştığını doğrulayın.
- Üretim dışındaki erişilebilir önizleme ve dal dağıtımlarını da tarayın. Eski sürümle kalan adresleri güncelleyin veya erişimden kaldırın; yalnızca ana sitenin yenilenmesi bu dağıtımları değiştirmez.
Son kontrolün konusu kaynak depodaki beyan değil, ziyaretçilere ve isteklere yanıt veren dağıtımdır. Yamalı paket üretim derlemesinde yer alırken eski bir önizleme hâlâ açıksa, o adres kendi bağımlılıkları ve işleme yollarıyla erişilebilir kalır.
Ayrıca okuyun:
İlgili makaleler


Drupal’da kritik RCE: Field UI kapalı değilse çekirdek güncellenmeli

GitHub Actions önbelleğine dört yetki geldi; yanlış “write” zehirlenme riski

PaperCut açığı saldırıda: Üçüncü acil yama önceki ikisinin yerini aldı

GitHub Actions mı GitLab CI mı? Ücretsiz dakika tek başına yetmiyor

App Engine’de Go 1.27 genel erişimde; önce çalışma zamanı farklarını sınayın
Bültenimize abone olun
En son Web3, yapay zekâ ve kripto haberleri doğrudan gelen kutunuza gelsin.