Podatność w Next.js w wersjach 16.0.0–16.2.10 pozwala nieuwierzytelnionemu atakującemu na ominięcie mechanizmów uwierzytelniania opartych na middleware lub proxy. Dotyczy aplikacji korzystających z App Router zbudowanych z Turbopack oraz konfiguracji z pojedynczym wpisem w polu config.i18n.locales.
▸ Pokaż oryginał (EN)
Next.js is a React framework for building full-stack web applications. In versions 16.0.0 through 16.2.10, crafted requests targeting Next.js applications using App Router built with Turbopack and a single entry in config.i18n.locales can bypass middleware/proxy based authentication. This issue has been fixed in version 16.2.11.
Atakujący wysyła spreparowane żądanie HTTP do aplikacji Next.js spełniającej określone warunki konfiguracyjne: użycie App Router, budowanie z Turbopack oraz obecność dokładnie jednego wpisu w tablicy config.i18n.locales. Takie żądanie powoduje, że warstwa middleware lub proxy odpowiedzialna za weryfikację tożsamości użytkownika zostaje pominięta. Podatność sklasyfikowana jest jako CWE-285 (Improper Authorization), co wskazuje na brak prawidłowej weryfikacji uprawnień przed udostępnieniem zasobu.
Atakujący bez żadnych poświadczeń może uzyskać nieautoryzowany dostęp do zasobów chronionych przez middleware lub proxy uwierzytelniające. Skutkuje to wysokim narażeniem na ujawnienie poufnych danych (VC:H) oraz możliwością dokonywania ograniczonych modyfikacji (VI:L).
Należy zaktualizować Next.js do wersji 16.2.11, w której podatność została naprawiona. Patch dostępny jest w oficjalnym repozytorium projektu (tag v16.2.11). Jako środek tymczasowy można rozważyć zwiększenie liczby wpisów w config.i18n.locales powyżej jednego lub przebudowanie aplikacji bez Turbopack, jednak jedynym pewnym rozwiązaniem pozostaje aktualizacja.
Aplikacje oparte na Vercel Next.js w wersjach od 16.0.0 do 16.2.10 włącznie, które jednocześnie spełniają wszystkie trzy warunki: korzystają z App Router, są budowane przy użyciu Turbopack oraz posiadają dokładnie jeden wpis w konfiguracji config.i18n.locales.
Podatność została ujawniona i naprawiona w ramach procesu GitHub Security Advisories (GHSA-6gpp-xcg3-4w24). Poprawka dostępna w commicie 6bf4df14508ad6c0cd46af50c6051ee42f2d9151.
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XVercel Next.js
APPVercel16.0.0 – 16.2.11 (bez)
Powiązane podatności
RCE bez uwierzytelnienia w React Server Components (deserializacja)
Pominięcie autoryzacji w middleware Next.js przez nagłówek x-middleware-subrequest
Vercel Next.js — nadmierne zużycie CPU przez spreparowane żądania (DoS)
Next.js: SSRF i Open Redirect przez niekontrolowane reguły rewrites/redirects
SSRF w Next.js — przekierowanie żądań przez Server Actions do złośliwego hosta