"Next.js'te iki kritik RCE: Image Optimization açığı CVE-2026-96889 ve 'use cache' hatası için 15.5.28 ile 16.4.1 şart"
Vercel'in 14 Ekim tarihli Next.js güvenlik güncellemesi, Image Optimization API'de SVG kullanıldığında oturum açmadan kod çalıştırmaya yol açan CVE-2026-96889 (CVSS v4 9.5) ile 'use cache' fonksiyonlarındaki ikinci bir kritik RCE'yi kapatıyor. Düzeltmeler 15.5.28 ve 16.4.1 sürümlerinde.
CVE-2026-96889Vercel, Next.js için 14 Ekim'de yayımladığı güvenlik güncellemesinde iki kritik ve bir yüksek önem dereceli açığı kapattı. En geniş etkiye sahip olanı CVE-2026-96889 (GHSA-2464-fhr4-w9xw): Image Optimization API'nin kullandığı bir upstream kütüphanedeki bellek hatası, Next.js glibc tabanlı Linux üzerinde çalışırken ve SVG dosyaları işlenirken oturum açmamış bir saldırganın sunucuda kod çalıştırmasına yol açabiliyor. CVSS v4 puanı 9.5. Aynı güncellemedeki GHSA-673q-mjm6-r5xr ise 16.x hattında, typed array döndüren use cache fonksiyonlarında yine kimlik doğrulamasız RCE'ye izin veriyor.
Bildirim bir aydır yayında olmasına rağmen sitemizde işlenmemişti. Bu hafta React Server Components'teki kritik RCE gündeme gelince Next.js projelerinin bağımlılıkları yeniden incelenmeye başlandı; Next.js'in bu güncellemesi de o React bildirimine atıf yapıyor. Üretici ve bildirimler şu an için aktif istismar ya da kamuya açık PoC bildirmiyor.
Etkilenen ve düzeltilmiş sürümler
| Ürün | Etkilenen | Düzeltilmiş sürüm |
|---|---|---|
| Next.js — CVE-2026-96889 (Image Optimization, SVG; kritik, 9.5) | 10.0.0–15.5.27, 16.0.0–16.4.0 | 15.5.28, 16.4.1 |
Next.js — GHSA-673q-mjm6-r5xr (use cache, typed array; kritik, 9.5) | 16.0.0–16.4.0 | 16.4.1 |
| Next.js — GHSA-p3m5-59mp-jv5r (App Router Server Actions DoS; yüksek, 8.2) | 13.0.0–15.5.27, 16.0.0–16.4.0 | 15.5.28, 16.4.1 |
Vercel düzeltilmiş sürümleri "16.4.1 (Active LTS)" ve "15.5.28 (Maintenance LTS)" olarak tanımlıyor. Bildirimler Vercel üzerinde barındırılan uygulamaların durumuna değinmiyor; kendi sunucusunda, konteynerde ya da başka bir platformda Next.js çalıştıranlar özellikle kontrol etmeli.
Beni etkiliyor mu?
Projede çözümlenen next ve sharp sürümlerini lockfile ve kurulu paketler üzerinden kontrol edin:
grep -n "\"next\"" package.json
grep -n "node_modules/next\"\|node_modules/sharp\"" package-lock.json
grep -n "next@\|sharp@" pnpm-lock.yaml yarn.lockCVE-2026-96889 için uygulamanın glibc tabanlı bir Linux üzerinde çalışıp çalışmadığını ve Image Optimization'ın (next/image) kullanılıp kullanılmadığını öğrenin (Alpine gibi musl tabanlı dağıtımlar glibc değildir; images ayarları proje kökündeki Next.js yapılandırma dosyasında yer alır):
cat /etc/os-release
grep -rn "next/image" src app pagesGHSA-673q-mjm6-r5xr yalnızca 16.x'te ve use cache direktifi kullanan uygulamalarda geçerli:
grep -rn "use cache" src appGHSA-p3m5-59mp-jv5r bildirimine göre Pages Router kullanan ve Server Actions içermeyen uygulamalar etkilenmiyor. Kaynak kodun yanında üretimde çalışan imajı da kontrol edin; eski bir imaj güncel lockfile'a rağmen savunmasız sürümü taşıyabilir.
Ne yapılmalı?
- Next.js'i kullandığınız hatta göre 16.4.1 ya da 15.5.28 veya daha yeni bir sürüme yükseltin ve uygulamayı yeniden derleyip yeniden dağıtın. 15.x öncesi hatlar için bildirim ayrı bir düzeltilmiş sürüm vermiyor; desteklenen bir LTS hattına geçişi planlayın.
- Hemen yükseltemiyorsanız CVE-2026-96889 için üreticinin belirttiği workaround: Next.js'in kullandığı
sharppaketinin 0.35.5 veya daha yeni olduğundan emin olun. Bildirime göre sıfırdan yapılan kurulumlar düzeltilmişsharpsürümünü otomatik alıyor; mevcut lockfile'larda eski sürüm kalabilir. use cacheaçığı (GHSA-673q-mjm6-r5xr) ve Server Actions DoS açığı için bildirimler yükseltme dışında bir workaround olmadığını söylüyor; bu uygulamalar önceliklendirilmeli.- Aynı uygulamalarda React Server Components paketlerini de React bildirimindeki düzeltilmiş sürümlere taşıyın; iki güncelleme birlikte ele alınmalı.
- İnternete açık Next.js sunucularında Image Optimization uç noktasına gelen olağandışı istek hacmini, Node.js sürecinin beklenmedik çökmelerini ve süreçten başlatılan alışılmadık alt süreçleri izleyin.
- Yükseltmeyi change management sürecinden geçirin; test ortamında
next/imageve Server Actions akışlarını doğruladıktan sonra üretime alın.