Vulnerability Details CVE-2025-29927
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.
Exploit prediction scoring system (EPSS) score
EPSS Score 0.925
EPSS Ranking 99.7%
CVSS Severity
CVSS v3 Score 9.1
Products affected by CVE-2025-29927
-
cpe:2.3:a:vercel:next.js:11.1.4
-
cpe:2.3:a:vercel:next.js:12.0.0
-
cpe:2.3:a:vercel:next.js:12.0.1
-
cpe:2.3:a:vercel:next.js:12.0.10
-
cpe:2.3:a:vercel:next.js:12.0.11
-
cpe:2.3:a:vercel:next.js:12.0.2
-
cpe:2.3:a:vercel:next.js:12.0.3
-
cpe:2.3:a:vercel:next.js:12.0.4
-
cpe:2.3:a:vercel:next.js:12.0.5
-
cpe:2.3:a:vercel:next.js:12.0.6
-
cpe:2.3:a:vercel:next.js:12.0.7
-
cpe:2.3:a:vercel:next.js:12.0.8
-
cpe:2.3:a:vercel:next.js:12.0.9
-
cpe:2.3:a:vercel:next.js:12.1.0
-
cpe:2.3:a:vercel:next.js:12.1.1
-
cpe:2.3:a:vercel:next.js:12.1.2
-
cpe:2.3:a:vercel:next.js:12.1.3
-
cpe:2.3:a:vercel:next.js:12.1.4
-
cpe:2.3:a:vercel:next.js:12.1.5
-
cpe:2.3:a:vercel:next.js:12.1.6
-
cpe:2.3:a:vercel:next.js:12.1.7
-
cpe:2.3:a:vercel:next.js:12.2.0
-
cpe:2.3:a:vercel:next.js:12.2.1
-
cpe:2.3:a:vercel:next.js:12.2.2
-
cpe:2.3:a:vercel:next.js:12.2.3
-
cpe:2.3:a:vercel:next.js:12.2.4
-
cpe:2.3:a:vercel:next.js:12.2.5
-
cpe:2.3:a:vercel:next.js:12.2.6
-
cpe:2.3:a:vercel:next.js:12.3.0
-
cpe:2.3:a:vercel:next.js:12.3.1
-
cpe:2.3:a:vercel:next.js:12.3.2
-
cpe:2.3:a:vercel:next.js:12.3.3
-
cpe:2.3:a:vercel:next.js:12.3.4
-
cpe:2.3:a:vercel:next.js:13.0.0
-
cpe:2.3:a:vercel:next.js:13.0.1
-
cpe:2.3:a:vercel:next.js:13.0.2
-
cpe:2.3:a:vercel:next.js:13.0.3
-
cpe:2.3:a:vercel:next.js:13.0.4
-
cpe:2.3:a:vercel:next.js:13.0.5
-
cpe:2.3:a:vercel:next.js:13.0.6
-
cpe:2.3:a:vercel:next.js:13.0.7
-
cpe:2.3:a:vercel:next.js:13.0.8
-
cpe:2.3:a:vercel:next.js:13.1.0
-
cpe:2.3:a:vercel:next.js:13.1.1
-
cpe:2.3:a:vercel:next.js:13.1.2
-
cpe:2.3:a:vercel:next.js:13.1.3
-
cpe:2.3:a:vercel:next.js:13.1.4
-
cpe:2.3:a:vercel:next.js:13.1.5
-
cpe:2.3:a:vercel:next.js:13.1.6
-
cpe:2.3:a:vercel:next.js:13.1.7
-
cpe:2.3:a:vercel:next.js:13.2.0
-
cpe:2.3:a:vercel:next.js:13.2.1
-
cpe:2.3:a:vercel:next.js:13.2.2
-
cpe:2.3:a:vercel:next.js:13.2.3
-
cpe:2.3:a:vercel:next.js:13.2.4
-
cpe:2.3:a:vercel:next.js:13.2.5
-
cpe:2.3:a:vercel:next.js:13.3.0
-
cpe:2.3:a:vercel:next.js:13.3.1
-
cpe:2.3:a:vercel:next.js:13.3.2
-
cpe:2.3:a:vercel:next.js:13.3.3
-
cpe:2.3:a:vercel:next.js:13.3.4
-
cpe:2.3:a:vercel:next.js:13.3.5
-
cpe:2.3:a:vercel:next.js:13.4.0
-
cpe:2.3:a:vercel:next.js:13.4.1
-
cpe:2.3:a:vercel:next.js:13.4.10
-
cpe:2.3:a:vercel:next.js:13.4.11
-
cpe:2.3:a:vercel:next.js:13.4.12
-
cpe:2.3:a:vercel:next.js:13.4.13
-
cpe:2.3:a:vercel:next.js:13.4.14
-
cpe:2.3:a:vercel:next.js:13.4.15
-
cpe:2.3:a:vercel:next.js:13.4.16
-
cpe:2.3:a:vercel:next.js:13.4.17
-
cpe:2.3:a:vercel:next.js:13.4.18
-
cpe:2.3:a:vercel:next.js:13.4.19
-
cpe:2.3:a:vercel:next.js:13.4.2
-
cpe:2.3:a:vercel:next.js:13.4.20
-
cpe:2.3:a:vercel:next.js:13.4.3
-
cpe:2.3:a:vercel:next.js:13.4.4
-
cpe:2.3:a:vercel:next.js:13.4.5
-
cpe:2.3:a:vercel:next.js:13.4.6
-
cpe:2.3:a:vercel:next.js:13.4.7
-
cpe:2.3:a:vercel:next.js:13.4.8
-
cpe:2.3:a:vercel:next.js:13.4.9
-
cpe:2.3:a:vercel:next.js:13.5.0
-
cpe:2.3:a:vercel:next.js:13.5.1
-
cpe:2.3:a:vercel:next.js:13.5.2
-
cpe:2.3:a:vercel:next.js:13.5.3
-
cpe:2.3:a:vercel:next.js:13.5.4
-
cpe:2.3:a:vercel:next.js:13.5.5
-
cpe:2.3:a:vercel:next.js:13.5.6
-
cpe:2.3:a:vercel:next.js:13.5.7
-
cpe:2.3:a:vercel:next.js:13.5.8
-
cpe:2.3:a:vercel:next.js:14.0.0
-
cpe:2.3:a:vercel:next.js:14.0.1
-
cpe:2.3:a:vercel:next.js:14.0.2
-
cpe:2.3:a:vercel:next.js:14.0.3
-
cpe:2.3:a:vercel:next.js:14.0.4
-
cpe:2.3:a:vercel:next.js:14.0.5
-
cpe:2.3:a:vercel:next.js:14.1.0
-
cpe:2.3:a:vercel:next.js:14.1.1
-
cpe:2.3:a:vercel:next.js:14.1.2
-
cpe:2.3:a:vercel:next.js:14.1.3
-
cpe:2.3:a:vercel:next.js:14.1.4
-
cpe:2.3:a:vercel:next.js:14.2.0
-
cpe:2.3:a:vercel:next.js:14.2.1
-
cpe:2.3:a:vercel:next.js:14.2.10
-
cpe:2.3:a:vercel:next.js:14.2.11
-
cpe:2.3:a:vercel:next.js:14.2.12
-
cpe:2.3:a:vercel:next.js:14.2.13
-
cpe:2.3:a:vercel:next.js:14.2.14
-
cpe:2.3:a:vercel:next.js:14.2.15
-
cpe:2.3:a:vercel:next.js:14.2.16
-
cpe:2.3:a:vercel:next.js:14.2.17
-
cpe:2.3:a:vercel:next.js:14.2.18
-
cpe:2.3:a:vercel:next.js:14.2.19
-
cpe:2.3:a:vercel:next.js:14.2.20
-
cpe:2.3:a:vercel:next.js:14.2.21
-
cpe:2.3:a:vercel:next.js:14.2.22
-
cpe:2.3:a:vercel:next.js:14.2.23
-
cpe:2.3:a:vercel:next.js:14.2.24
-
cpe:2.3:a:vercel:next.js:14.2.3
-
cpe:2.3:a:vercel:next.js:14.2.4
-
cpe:2.3:a:vercel:next.js:14.2.5
-
cpe:2.3:a:vercel:next.js:14.2.6
-
cpe:2.3:a:vercel:next.js:14.2.7
-
cpe:2.3:a:vercel:next.js:14.2.8
-
cpe:2.3:a:vercel:next.js:14.2.9
-
cpe:2.3:a:vercel:next.js:15.0.0
-
cpe:2.3:a:vercel:next.js:15.0.1
-
cpe:2.3:a:vercel:next.js:15.0.2
-
cpe:2.3:a:vercel:next.js:15.0.3
-
cpe:2.3:a:vercel:next.js:15.0.4
-
cpe:2.3:a:vercel:next.js:15.0.5
-
cpe:2.3:a:vercel:next.js:15.0.6
-
cpe:2.3:a:vercel:next.js:15.0.7
-
cpe:2.3:a:vercel:next.js:15.1.0
-
cpe:2.3:a:vercel:next.js:15.1.1
-
cpe:2.3:a:vercel:next.js:15.1.10
-
cpe:2.3:a:vercel:next.js:15.1.11
-
cpe:2.3:a:vercel:next.js:15.1.2
-
cpe:2.3:a:vercel:next.js:15.1.3
-
cpe:2.3:a:vercel:next.js:15.1.4
-
cpe:2.3:a:vercel:next.js:15.1.5
-
cpe:2.3:a:vercel:next.js:15.1.6
-
cpe:2.3:a:vercel:next.js:15.1.7
-
cpe:2.3:a:vercel:next.js:15.1.8
-
cpe:2.3:a:vercel:next.js:15.1.9
-
cpe:2.3:a:vercel:next.js:15.2.0
-
cpe:2.3:a:vercel:next.js:15.2.1
-
cpe:2.3:a:vercel:next.js:15.2.2