Podatność typu SSRF (Server-Side Request Forgery) w Next.js pozwala atakującemu na skierowanie żądań wychodzących serwera do wybranego przez siebie hosta poprzez manipulację nagłówkami powiązanymi z Host. Zagrożenie dotyczy aplikacji korzystających z Server Actions w wersjach 14.1.1–15.5.20 oraz 16.0.0–16.2.10.
▸ Pokaż oryginał (EN)
Next.js is a React framework for building full-stack web applications. In versions 14.1.1 through 15.5.20 and 16.0.0 through 16.2.10, when a Server Action forwards or redirects a request, an attacker can cause the server to send that outbound request to a malicious host (Server-Side Request Forgery). This requires the attacker's request to control Host-associated headers. In some configurations, it's also possible to obtain internal values that weaken middleware/proxy authorization. Applications that use Server Actions are affected when the incoming host header is not fixed to a trusted value. This typically occurs on custom servers, or on deployments not behind a proxy that pins the host. Managed hosting pins the host upstream and is not affected; next start and standalone output do the same from version 14.2 onward. This issue has been fixed in versions 15.5.21 and 16.2.11.
Gdy Server Action wykonuje przekierowanie lub forwarding żądania, serwer Next.js używa nagłówków powiązanych z Host do określenia docelowego adresu żądania wychodzącego. Atakujący, który ma kontrolę nad wartością nagłówka Host (lub powiązanych nagłówków) w żądaniu przychodzącym, może spowodować, że serwer wyśle żądanie do arbitralnego, złośliwego hosta. Podatność ujawnia się w konfiguracjach, gdzie nagłówek Host nie jest zablokowany na zaufaną wartość — typowo na serwerach niestandardowych lub wdrożeniach bez proxy, które przypina wartość Host. W niektórych konfiguracjach możliwe jest również pozyskanie wewnętrznych wartości osłabiających autoryzację middleware lub proxy.
Atakujący może zmusić serwer do wysyłania żądań HTTP do dowolnych hostów, co umożliwia eksfiltrację danych, skanowanie wewnętrznej infrastruktury lub ominięcie mechanizmów autoryzacji middleware i proxy poprzez ujawnienie wewnętrznych wartości uwierzytelniających.
Należy zaktualizować Next.js do wersji 15.5.21 lub 16.2.11, w których problem został naprawiony. Jako środek zastępczy można wdrożyć proxy lub load balancer przypinający wartość nagłówka Host do zaufanej wartości przed przekazaniem żądania do serwera Next.js.
Next.js w wersjach 14.1.1 do 15.5.20 oraz 16.0.0 do 16.2.10, gdy aplikacja korzysta z Server Actions, a nagłówek Host nie jest zablokowany na zaufaną wartość. Dotyczy głównie wdrożeń na serwerach niestandardowych lub bez proxy przypinającego Host. Wdrożenia na zarządzanym hostingu Vercel, `next start` oraz tryb standalone od wersji 14.2 nie są podatne.
Podatność dotyczy wyłącznie aplikacji używających Server Actions z niezablokowanym nagłówkiem Host. Wdrożenia na zarządzanym hostingu Vercel oraz konfiguracje next start i standalone od wersji 14.2 są chronione z poziomu infrastruktury. Poprawki dostępne są w commitach b51206321854193208c0805ba42acc49287f942b oraz e3e5666ccead3a15162793d697af5e48b7cc0498.
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
APPVercel14.1.1 – 15.5.21 (bez)16.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)
Ominięcie uwierzytelniania middleware w Next.js App Router z Turbopack
Next.js: SSRF i Open Redirect przez niekontrolowane reguły rewrites/redirects