Next.js’de, belirli Next.js sürümlerinde yanıt kuyruğu zehirlenmesi ve SSRF ile ilgili iki yeni güvenlik açığı keşfedildi.
Bu güvenlik açıklarına CVE-2024-34350 ve CVE-2024-34351 atanmış ve önem dereceleri 7,5 (Yüksek) olarak verilmiştir.
Yanıt kuyruğu zehirlenmesi güvenlik açığı, tek bir istek ve iki ayrı istek olarak ele alınması amaçlanan hazırlanmış HTTP isteklerinin tutarsız şekilde yorumlanması nedeniyle ortaya çıkmaktadır.
Ayrıca SSRF güvenlik açığı, varsayılan olarak mevcut ve etkin olan güvenlik açığı bulunan Next.js bileşeninden kaynaklanmaktadır.
Ancak bu güvenlik açıkları Next.js’nin en son sürümlerinde yamalanmıştır ve bunları gidermek için güvenlik önerileri yayınlanmıştır. Ayrıca CVE-2024-34351 için bir kavram kanıtı da yayınlandı.
Ücretsiz Web Semineri Canlı API Saldırı Simülasyonu: Yerinizi Ayırın | API’lerinizi bilgisayar korsanlarından korumaya başlayın
CVE-2024-34350: Next.js, HTTP İstek Kaçakçılığına Karşı Savunmasız
Cyber Security News ile paylaşılan raporlara göre bu güvenlik açığı, tehdit aktörleri tarafından kullanıldığında Next.js’den gelen senkronizasyon dışı yanıtlara yol açabiliyor ve bu da yanıt kuyruğu zehirlenmesine yol açabiliyor.
Tepki kuyruğu zehirlenmesi ilk olarak Portswigger araştırması tarafından keşfedildi. Bu, bir ön uç sunucuyu manipüle edebilen ve yanlış arka uç yanıtlarını eşleştirebilen güçlü bir istek kaçakçılığı saldırısı biçimidir.
Ancak bu güvenlik açığından yararlanılabilmesi için etkilenen rotaların Next.js’deki yeniden yazma özelliğini kullanıyor olması gerekir. Bu güvenlik açığına yönelik herhangi bir geçici çözüm bulunmamakla birlikte, bu güvenlik açığı Next.js 13.5.1 sürümlerinde ve 14.x dahil daha yeni sürümlerde yamalı olarak uygulanmıştır.
CVE-2024-34351: Sunucu Eylemlerinde Sunucu Tarafı İstek Sahteciliği
Bu güvenlik açığı, arka uçtaki bir görüntüyü bulmak için kullanılan güvenlik açığı bulunan API uç noktası _next/image nedeniyle ortaya çıkar.
Bu görsel konumlandırma, sıradan bir görsel etiketiyle birlikte aşağıdakine benzer bir URL kullanılarak yapılır. Bir fikir sağlamak için Next.js’nin görüntüleri yeniden boyutlandırma seçeneği vardır. _sonraki/resim Yerleşik bir bileşen olan ve varsayılan olarak etkin olan bileşen.
https://example.com/_next/image?url=https://cdn.example.com/i/rabbit.png&w=256&q=75
Ancak, görüntü bulma URL’sini ziyaret ederken NextJS, kullanıcıya geri göndermeden önce sunucu tarafı bir görüntü işleme kitaplığı kullanarak//localhost/duck.jpg dosyasını yeniden boyutlandırmasını ister.
Ayrıca bu URL özelliği, next.config.js dosyasındaki RemotePatterns işlevini kullanarak diğer etki alanlarındaki görüntüleri de sunabilir.
Next.js kaynak kodu ilginç bir gerçeği ortaya koyuyor: Bir sunucu eylemi çağrılırsa ve yanıt bir yönlendirme ise, yönlendirmede belirli parametreler kullanılır.
Yönlendirme / ile başlıyorsa, sunucu _sunucu_tarafı_ yönlendirmesinin sonucunu alır ve istemciye döndürür. Bu özel _sunucu_tarafının istemciden ana bilgisayar başlığını aldığı tespit edildi.
Ana bilgisayar başlığı dahili bir ana bilgisayara yönlendirilirse NextJS, uygulamanın kendisinden yanıtı alır ve bu da potansiyel olarak bir SSRF güvenlik açığına yol açar. Bu güvenlik açığı NextJS 14.1.1 sürümünde yamalı olarak kapatılmıştır.
Ayrıca, bu güvenlik açığına ilişkin, yararlanma, kaynak kodu ve diğer bilgiler hakkında ayrıntılı bilgi sağlayan Assetnote tarafından eksiksiz bir kavram kanıtı yayımlandı.
Bu güvenlik açıklarından yararlanılmasını önlemek için NextJS kullanıcılarının en son sürümlere yükseltmeleri önerilir.
Is Your Network Under Attack? - Read CISO’s Guide to Avoiding the Next Breach - Download Free Guide