Podatność w frameworku Next.js (Vercel) umożliwia atakującemu całkowite ominięcie mechanizmów autoryzacji zaimplementowanych w middleware aplikacji. Zagrożenie jest krytyczne, ponieważ nie wymaga uwierzytelnienia ani interakcji użytkownika, a może prowadzić do nieuprawnionego dostępu do chronionych zasobów.
▸ Pokaż oryginał (EN)
Next.js is a React framework for building full-stack web applications. Starting in version 1.11.4 and prior to versions 12.3.5, 13.5.9, 14.2.25, and 15.2.3, it is possible to bypass authorization checks within a Next.js application, if the authorization check occurs in middleware. If patching to a safe version is infeasible, it is recommend that you prevent external user requests which contain the x-middleware-subrequest header from reaching your Next.js application. This vulnerability is fixed in 12.3.5, 13.5.9, 14.2.25, and 15.2.3.
Atakujący wysyła żądanie HTTP zawierające specjalnie spreparowany nagłówek x-middleware-subrequest. Next.js traktuje takie żądanie jako wewnętrzne podzapytanie middleware i pomija wykonanie logiki autoryzacyjnej zdefiniowanej w warstwie middleware. W efekcie kontrole dostępu — niezależnie od ich implementacji — są ignorowane, a żądanie trafia do chronionych zasobów bez weryfikacji uprawnień. Problem dotyczy wszystkich sprawdzeń autoryzacyjnych umieszczonych wyłącznie w middleware.
Atakujący może uzyskać nieautoryzowany dostęp do chronionych zasobów aplikacji oraz manipulować danymi, do których normalnie nie powinien mieć uprawnień, co odpowiada naruszeniu poufności i integralności (CWE-285, CWE-863).
Należy zaktualizować Next.js do wersji 12.3.5, 13.5.9, 14.2.25 lub 15.2.3. Jeśli aktualizacja nie jest możliwa do natychmiastowego wdrożenia, producent zaleca blokowanie na poziomie infrastruktury (reverse proxy, firewall, load balancer) wszystkich przychodzących żądań zewnętrznych zawierających nagłówek x-middleware-subrequest, tak aby nie docierały do aplikacji Next.js.
Next.js w wersjach od 1.11.4 do 12.3.4, od 13.0.0 do 13.5.8, od 14.0.0 do 14.2.24 oraz od 15.0.0 do 15.2.2 — wszystkie warianty oparte o framework Next.js firmy Vercel, w których logika autoryzacji jest zaimplementowana w middleware.
Producent (Vercel) opublikował oficjalne security advisory GHSA-f82v-jwr5-mffw. Podatność dotyczy wyłącznie aplikacji, w których autoryzacja jest realizowana w warstwie middleware — jeśli sprawdzenia uprawnień są implementowane na poziomie poszczególnych route handlerów lub stron, ryzyko jest mniejsze.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:NVercel Next.js
APPVercel11.1.4 – 12.3.5 (bez)13.0.0 – 13.5.9 (bez)14.0.0 – 14.2.25 (bez)15.0.0 – 15.2.3 (bez)
Powiązane podatności
RCE bez uwierzytelnienia w React Server Components (deserializacja)
Next.js is a React framework for building full-stack web applications. From 12.2.0 to before 15.5.16 and 16.2....
Next.js is a React framework for building full-stack web applications. From 15.2.0 to before 15.5.16 and 16.2....
Next.js is a React framework for building full-stack web applications. From 15.4.0 to before 15.5.16 and 16.2....
Next.js is a React framework for building full-stack web applications. From 13.4.13 to before 15.5.16 and 16.2...