Next.js’te kritik ImageResponse açığı SVG ile kod çalıştırabiliyor

Anasayfa » Next.js’te kritik ImageResponse açığı SVG ile kod çalıştırabiliyor
Next.js’te kritik ImageResponse açığı SVG ile kod çalıştırabiliyor

Vercel, Next.js’in sosyal medya önizleme görsellerini üreten ImageResponse özelliğindeki kritik açığı 22 Eylül’de yayımladığı 16.3.6 sürümüyle kapattı. CVE-2026-94545 olarak izlenen hata, saldırganın kontrol ettiği değerler SVG içeriğine taşındığında sunucu tarafında kod çalıştırmaya kadar uzanabiliyor.

Açık, Next.js 16.2.0 ile 16.3.5 arasındaki sürümleri etkiliyor. Risk, ImageResponse bileşeni Node.js çalışma zamanında çalıştığında ortaya çıkıyor ve Next.js bu runtime’ı varsayılan olarak kullanıyor. Vercel, zafiyeti kritik olarak sınıflandırdı ve 9.5 CVSS puanı verdi. Edge sürümünün etkilenmediği, Next.js 15’in de bu hatadan etkilenmediği açıklandı.

Risk, SVG’ye taşınan kullanıcı girdisinde başlıyor

ImageResponse, önce görsel düzeni Vercel’in Satori kütüphanesiyle SVG koduna dönüştürüyor, ardından son PNG üretimini tamamlıyor. Güvenlik duyurusuna göre sorun, saldırganın kontrol ettiği değerlerin SVG içeriğine, özniteliklerine ya da stillerine aktarılması sırasında ortaya çıkıyor. Böyle bir durumda özel hazırlanmış veri düz metin olarak değil, SVG kodu gibi yorumlanabiliyor.

Vercel’in notunda, istek URL’sinden alınan bir değerin SVG içindeki title öğesine yerleştirildiği örnek verildi. Duyuru, div içindeki bir başlık gibi sıradan öğelerde geçen metinlerin aynı kapsama girip girmediğini ise açık biçimde söylemiyor. Şirketin tarif ettiği risk, kullanıcı girdisinin görsel üretim hattında güvenli şekilde kaçışlandırılmamasıyla oluşuyor.

Etkilenen uygulamalar, saldırganın denetlediği değerleri SVG içeriğine, özniteliklerine ya da stillerine geçirerek görsel oluşturanlar olarak tanımlanıyor. Vercel, bu akışın Next.js içinde başka bağımlı kütüphanelere de sıçrayabileceğini ve kod çalıştırmaya yol açabileceğini belirtti. Ancak hangi kütüphanelerin bu sonuca neden olabileceğini isimlendirmedi.

Bugün itibarıyla The Hacker News, açığın kullanıldığına dair kamuya açık bir saldırı raporu ve kamuya açık bir exploit kodu bulamadığını yazdı. Buna karşın açık, 18 Mart’ta yayımlanan Next.js 16.2’den bu yana erişilebilir durumda bulunuyor.

Yama, sürüm bilgisi ve geliştiricilerin bakması gereken yerler

Next.js’te bu özelliği kullanan ekiplerin next/og paketinden ImageResponse içe aktarılan noktaları kontrol etmesi gerekiyor. Route handler’larda bu görsel, istek geldiğinde üretiliyor. opengraph-image dosyaları ise build sırasında ya da istek anında çalışabiliyor. Kod tabanında bu kullanımı görmek için next/og import’u ve sosyal önizleme görselleri üreten dosyalar inceleniyor.

Yamanmış sürüm yalnızca 16.3.6 olarak yayımlandı ve düzeltme npm install next@16.3.6 komutuyla kurulabiliyor. 16.2 serisi için npm kayıtlarında ayrı bir düzeltilmiş sürüm görünmediği için, bu dalda kalan uygulamaların 16.3.6’ya geçmesi gerekiyor. Next.js 15.5.26 ise 15.5 kolunda next/og için ek güvenlik sıkılaştırması getiriyor.

Etki altında olmayan Edge sürümüne geçiş için öneri verilmedi. Next.js dokümantasyonu Edge runtime’ı kullanım dışı olarak işaretliyor. Vercel’in duyurusu ve açıklaması, etkilenen bir rotanın yamadan önce kullanılıp kullanılmadığını anlamaya dönük bir yöntem de paylaşmadı.

23 Eylül itibarıyla npm audit, etkilenen 16.3.5 sürümünü işaretlemedi. Aynı tarihte bu uyarı GitHub Advisory Database’de yer almıyordu ve CVE-2026-94545 için henüz bir CVE kaydı yayımlanmamıştı. Next.js sürümünü doğrudan kontrol etmek gerekiyor; çünkü Satori, Next.js paketinin içinde gömülü geliyor ve kilit dosyası onu Next.js’in ayrı bir bağımlılığı gibi göstermiyor.

Açığın kökü Satori tarafında. Satori’nin aynı gün yayımlanan duyurusuna göre bazı değerler SVG çıktısına düzgün kaçışlandırılmadan ulaştı ve özel hazırlanmış girdiler düz metin yerine SVG kodu olarak okunabildi. Satori’yi doğrudan kullanan geliştiriciler için önerilen sürüm 0.33.5 oldu; Satori duyurusu da aynı CVE’yi 5.3 puanla orta düzeyde sınıflandırdı ve etkinin SVG çıktısının nasıl kullanıldığına bağlı olduğunu belirtti.

Vercel, kendi platformunda barındırılan uygulamaların bu açık karşısında ayrıca korunup korunmadığına dair net bilgi vermedi. Şirket, ağustosta kapattığı iki kritik Next.js açığında ise Vercel üzerinde barındırılan uygulamaların korunduğunu ve yükseltme gerektirmediğini açıklamıştı. Şirketin aynı gün yayımladığı notlarda, yamadan önce etkilenen bir rotanın suistimal edilip edilmediği sorusuna da yanıt yok.

CVE kaydı: https://nvd.nist.gov/vuln/detail/CVE-2026-94545