Skip to content

23 tools · 104 fixes · 29 issue guides · Sources: GitHub, Supabase, OWASP, Vercel + 28

Incident feed

A nested Next.js use cache can serve one root param's content for another

On September 30, 2026, Next.js published GHSA-h694-7cp9-m8p3. With Cache Components on, a nested use cache that reads a root param can reuse one value's content for every root param. The leaked value is not attacker-controlled. CVE-2026-103004 says 16.3.0 through 16.3.7 are affected and 16.3.8 is the patch.

Share link · Share on X

What was reported

GHSA-h694-7cp9-m8p3, published September 30, 2026, says that with Cache Components enabled, a use cache function that calls another use cache function that reads a root param can be keyed incorrectly when the inner call is already cached. The outer function's cache key then omits that root param. The entry is written once and reused for every root param value, including prerendered and dynamic pages. Shared cache headers can send that content further. The advisory says the leaked value cannot be chosen by an attacker. Which value is served depends on which invocation wrote the entry first. It lists next 16.3.0, patched in 16.3.8, and says there is no workaround.

CVE-2026-103004, published October 1, 2026, says Next.js versions from 16.3.0 to 16.3.7 can leak a warm use cache handler's return value across root params, and that 16.3.8 is the patch. The record's affected range is also written as every version before 16.3.8. This note follows the description's 16.3.0 to 16.3.7 range, which matches the GHSA's 16.3.0 line.

How to prevent it

Upgrade next to 16.3.8 if you are on 16.3.0 through 16.3.7 and Cache Components are enabled. The advisory says there is no workaround. The leaked value is whichever request wrote the cache entry first, not a value an attacker chooses.

Sources

The weekly fix

The weekly fix: 3 real security mistakes in vibe-coded apps and how to fix them, every Tuesday.

One email, every Tuesday. A welcome note follows the first signup.