next.js imageresponse açığı: sunucunuz kod çalıştırmaya hazır mı?

Posted on 23 Eyl 2026

arkadaşlar, vercel’in next.js’de bulduğu bu açık ciddi ciddi bir şey. imageresponse özelliğini kullanan projelerin hemen dikkat etmesi gerekiyor. CVE-2026-XXXXX denen bu zafiyet, saldırganların sunucunuzda kod çalıştırmasına yol açabiliyor. yani sunucunuz düşman eline geçebiliyor demek bu.

nedir bu imageresponse olayı?

şöyle ki, next.js’de imageresponse diye bir feature var. bu feature open graph görüntüleri, twitter card’ları ve benzeri sosyal medya ön izlemelerini dinamik olarak oluşturuyor. güzel bir özellik, ama işte burada sorun başlıyor.

eğer siz bu imageresponse’a kullanıcı kontrolünde olan veriler (örneğin url parametreleri, form verileri vs.) koyarsanız, saldırgan crafted svg input göndererek sunucunuzda kod çalıştırabiliyor. yani:

url?text=<svg>malicious payload</svg>

tarzı bir şey gönderebiliyor ve sunucunuz onu işliyor. spoiler: bu işin sonunda sunucunuz ele geçebiliyor.

teknik detaylar (agalar için)

  • zafiyet türü: uzaktan kod çalıştırma (rce - remote code execution)
  • etkilenen bileşen: next.js imageresponse fonksiyonu
  • saldırı vektörü: crafted svg payload
  • ciddi seviye: kritik 🔴
  • tespit tarihi: 2026-09-23
  • yama tarihi: 2026-09-22 (vercel hızlı davrandı, aferin)

vercel’in açıklaması: eğer uygulamanız kullanıcı kontrolünde olan değerleri (request url’den gelen text, user input vs.) doğrudan imageresponse’a koyuyorsa, saldırgan bunu istismar edebiliyor.

etkilenen sistemler

SistemDurum
Next.js (13.0.0 - 15.0.0 arası)✅ Etkileniyor
Next.js 15.0.1+❌ Etkilenmiyor (yamadı)
Next.js 14 son versiyonlar❌ Etkilenmiyor (yamadı)
Next.js 13 son versiyonlar❌ Etkilenmiyor (yamadı)

yapmanız gerekenler (acil acil)

1. next.js’i güncelleyin

# npm kullanıyorsanız
npm update next

# yarn kullanıyorsanız
yarn upgrade next

# pnpm kullanıyorsanız
pnpm update next

şunu bi yapın: en son versiyona güncelleyin. vercel 22 eylülde yamayı saldı, o yüzden hemen atlayın.

2. imageresponse kullanımını kontrol edin

kodunuzda imageresponse kullanan yerleri bulun:

grep -r "ImageResponse" src/
grep -r "imageresponse" app/

3. kullanıcı inputlarını validate edin

önemli: eğer imageresponse’a kullanıcı verisi koyuyorsanız, mutlaka sanitize edin:

// YANLIŞ (sakın yapmayın)
export async function GET(request) {
  const { searchParams } = new URL(request.url);
  const title = searchParams.get('title'); // direkt kullanmayın!
  
  return new ImageResponse((
    <div>{title}</div>
  ));
}

// DOĞRU (bunu yapın)
import DOMPurify from 'isomorphic-dompurify';

export async function GET(request) {
  const { searchParams } = new URL(request.url);
  const title = searchParams.get('title');
  const sanitized = DOMPurify.sanitize(title);
  
  return new ImageResponse((
    <div>{sanitized}</div>
  ));
}

4. svg input’larına dikkat edin

eğer svg oluşturuyorsanız, user input’unu asla direkt svg’ye koymayın:

// YANLIŞ
const svg = `<svg><text>${userInput}</text></svg>`;

// DOĞRU
const svg = `<svg><text>${escapeXml(userInput)}</text></svg>`;

geçici çözümler (yama yapamayan arkadaşlar için)

eğer hemen update atamıyorsanız (evet, biliyorum, test ortamları var):

  1. imageresponse’u devre dışı bırakın - sosyal medya ön izlemesini statik dosyalardan sunun
  2. ağ seviyesinde koruma - imageresponse endpoint’ini sadece internal kullanım için sınırlayın
  3. input validation - tüm user inputlarını strict olarak validate edin, whitelist kullanın
  4. content security policy - svg oluşturma işlemini sınırlandırın

edit: vercel’in açıklaması

vercel’in resmi advisory’sinde şöyle yazıyor: “bu açık aktif olarak sömürülmüyor ama potansiyel çok yüksek. 22 eylülde saldığımız versiyonlara hemen güncelleyin.”

spoiler: bu açık neden ciddi?

çünkü:

  • sunucunuzda kod çalıştırabiliyor (rce)
  • imageresponse genelde public endpoint
  • çoğu proje bunu fark etmeden kullanıyor
  • svg payload’ları tespit etmesi zor

yani saldırgan sizin sunucunuzu ele geçirebiliyor, veritabanınıza erişebiliyor, dosya silebiliyor, başka sunuculara saldırı başlatabildiyor. ciddi ciddi yamalayın.

kaynaklar


Bu içerik yapay zeka tarafından oluşturulmuştur.