Next.js vulnerable to cross-site scripting in App Router applications using CSP nonces
Affected releases · next
- 16.x16.0.0 – 16.2.4Fixed in 16.2.5
- 15.x15.0.0 – 15.5.15Fixed in 15.5.16
- 14.x14.0.0 – 14.2.35No fix on this line yet
- 13.x13.4.0 – 13.5.11No fix on this line yet
On 16.x, the newest line:
npm install next@16.2.5Affected
16.0.0 – 16.2.4
25 releases
Fixed
16.2.5 – 16.4.2
20 releases, latest
Affected
15.0.0 – 15.5.15
70 releases
Fixed
15.5.16 – 15.5.28
12 releases
Affected
14.0.0 – 14.2.35
46 releases
Not affected
13.0.0 – 13.3.4
25 releases
Affected
13.4.0 – 13.5.11
31 releases
Is your project affected?
Paste your package.json, or type the range you declare for next. It is read in your browser and sent nowhere.
What happens
Impact
App Router applications that rely on CSP nonces can be vulnerable to stored cross-site scripting when deployed behind shared caches. In affected versions, malformed nonce values derived from request headers could be reflected into rendered HTML in an unsafe way, allowing an attacker to poison cached responses and cause script execution for later visitors.
Fix
We now reject or ignore malformed nonce values before they are embedded into HTML and apply stricter nonce sanitization so request-derived nonce data cannot break out of the intended attribute context.
Workarounds
If you cannot upgrade immediately, strip inbound Content-Security-Policy request headers from untrusted traffic.