VYPR
Moderate severityNVD Advisory· Published Aug 29, 2025· Updated Sep 2, 2025

Next.js Affected by Cache Key Confusion for Image Optimization API Routes

CVE-2025-57752

Description

Next.js is a React framework for building full-stack web applications. In versions before 14.2.31 and from 15.0.0 to before 15.4.5, Next.js Image Optimization API routes are affected by cache key confusion. When images returned from API routes vary based on request headers (such as Cookie or Authorization), these responses could be incorrectly cached and served to unauthorized users due to a cache key confusion bug. This vulnerability has been fixed in Next.js versions 14.2.31 and 15.4.5. All users are encouraged to upgrade if they use API routes to serve images that depend on request headers and have image optimization enabled.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
nextnpm
>= 0.9.9, < 14.2.3114.2.31
nextnpm
>= 15.0.0, < 15.4.515.4.5

Affected products

1

Patches

1
6b12c60c61ee

fix(next/image): fix image-optimizer.ts headers (#82114)

https://github.com/vercel/next.jsStevenJul 28, 2025via ghsa
3 files changed · +18 1
  • packages/next/src/server/image-optimizer.ts+0 1 modified
    @@ -634,7 +634,6 @@ export async function fetchInternalImage(
         const mocked = createRequestResponseMocks({
           url: href,
           method: _req.method || 'GET',
    -      headers: _req.headers,
           socket: _req.socket,
         })
     
    
  • test/integration/image-optimizer/app/pages/api/conditional-cookie.js+11 0 added
    @@ -0,0 +1,11 @@
    +const pixel =
    +  'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPj/HwADBwIAMCbHYQAAAABJRU5ErkJggg=='
    +
    +export default function handler(req, res) {
    +  if (req.headers['cookie']) {
    +    res.setHeader('content-type', 'image/png')
    +    res.end(Buffer.from(pixel, 'base64'))
    +  } else {
    +    res.status(401).end('cookie was not found')
    +  }
    +}
    
  • test/integration/image-optimizer/test/util.ts+7 0 modified
    @@ -308,6 +308,13 @@ export function runTests(ctx: RunTestsCtx) {
         expect(ctx.nextOutput).toContain(animatedWarnText)
       })
     
    +  it('should not forward cookie header', async () => {
    +    const query = { w: ctx.w, q: 30, url: '/api/conditional-cookie' }
    +    const opts = { headers: { accept: 'image/webp', cookie: '1' } }
    +    const res = await fetchViaHTTP(ctx.appPort, '/_next/image', query, opts)
    +    expect(res.status).toBe(400)
    +  })
    +
       if (ctx.nextConfigImages?.dangerouslyAllowSVG) {
         it('should maintain vector svg', async () => {
           const query = { w: ctx.w, q: 90, url: '/test.svg' }
    

Vulnerability mechanics

Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

6

News mentions

0

No linked articles in our index yet.