CVE-2025-59472
Təsvir
Minimal rejimdə işləyərkən Partial Prerendering (PPR) aktiv edilmiş Next.js versiyalarında xidmətdən imtina (DoS) zəifliyi mövcuddur. PPR bərpa nöqtəsi (resume endpoint), `Next-Resume: 1` başlığı olan autentifikasiya olunmamış POST sorğularını qəbul edir və hücumçunun idarə etdiyi təxirə salınmış vəziyyət məlumatlarını emal edir. Bir-biri ilə yaxından əlaqəli iki zəiflik hücumçuya yaddaşın tükənməsi vasitəsilə server prosesini çökdürməyə imkan verir: 1. **Məhdudiyyətsiz sorğu gövdəsinin buferləşdirilməsi**: Server heç bir ölçü limiti tətbiq etmədən bütün POST sorğusu gövdəsini `Buffer.concat()` istifadə edərək yaddaşa buferləşdirir ki, bu da ixtiyari dərəcədə böyük faylların mövcud yaddaşı tükətməsinə şərait yaradır. 2. **Məhdudiyyətsiz sıxılmanın açılması (zipbomb)**: Bərpa məlumatlarının keşyəsi, açılmış çıxış ölçüsü məhdudlaşdırılmadan `inflateSync()` vasitəsilə sıxılımdan çıxarılır. Kiçik sıxılmış fayl yüzlərlə meqabayta və ya giqabayta genişlənərək yaddaşın tükənməsinə səbəb ola bilər. Hər iki hücum vektoru kritik V8 yaddaş çatışmazlığı xətasına (`FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory`) səbəb olur və Node.js prosesinin dayanmasına gətirib çıxarır. Zipbomb variantı xüsusilə təhlükəlidir, çünki o, reverse proxy sorğu ölçüsü limitlərini yan keçərək serverdə böyük yaddaş ayırmasına səbəb ola bilir. Təsirə məruz qalmaq üçün tətbiqin `experimental.ppr: true` və ya `cacheComponents: true` konfiqurasiyası ilə birlikdə NEXT_PRIVATE_MINIMAL_MODE=1 mühit dəyişəni ilə işləməsi lazımdır. Riskləri azaltmaq və Next tətbiqlərində əlçatanlıq problemlərinin qarşısını almaq üçün 15.6.0-canary.61 və ya 16.1.5 versiyalarına yeniləməyiniz şiddətlə tövsiyə olunur.
Necə düzəltmək olar
- vercel next.js15.6.0, 16.1.5 və ya daha yeni versiya
- next16.1.5, 15.6.0-canary.61 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| vercel next.js | 15.0.0 ≤ v < 15.6.0, 16.0.0 ≤ v < 16.1.5, 15.6.0 | 15.6.0, 16.1.5 |
| nextnpm | 16.0.0-beta.0 ≤ v < 16.1.5, 15.0.0-canary.0 ≤ v ≤ 15.0.0-canary.205, 15.0.1-canary.0 ≤ v ≤ 15.0.1-canary.3, 15.0.2-canary.0 ≤ v ≤ 15.0.2-canary.11, 15.0.3-canary.0 ≤ v ≤ 15.0.3-canary.9, 15.0.4-canary.0 ≤ v ≤ 15.0.4-canary.52, 15.1.1-canary.0 ≤ v ≤ 15.1.1-canary.27, 15.2.0-canary.0 ≤ v ≤ 15.2.0-canary.77, 15.2.1-canary.0 ≤ v ≤ 15.2.1-canary.6, 15.2.2-canary.0 ≤ v ≤ 15.2.2-canary.7, 15.3.0-canary.0 ≤ v ≤ 15.3.0-canary.46, 15.3.1-canary.0 ≤ v ≤ 15.3.1-canary.15, 15.4.0-canary.0 ≤ v ≤ 15.4.0-canary.130, 15.4.2-canary.0 ≤ v ≤ 15.4.2-canary.56, 15.5.1-canary.0 ≤ v ≤ 15.5.1-canary.39, 15.6.0-canary.0 ≤ v < 15.6.0-canary.61 | 16.1.5, 15.6.0-canary.61 |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.