🔍 CVE-2026-44572

3.7
CVSS Score
LOW
2026-05-13
2026-10-26 18:10
✅ 완료

🇰🇷 한글 설명

Next.js 12.2.0부터 15.5.16 미만 및 16.2.5 미만 버전에서, 외부 클라이언트가 리다이렉트를 반환하는 미들웨어 경로에 x-nextjs-data 헤더를 포함한 일반 요청을 보낼 수 있습니다. 이 경우 미들웨어가 표준 Location 헤더 대신 내부용 x-nextjs-redirect 헤더를 사용하게 되어, 일반 브라우저가 따라갈 수 없는 리다이렉트 응답이 생성됩니다. CDN이나 리버스 프록시가 이 헤더를 구분하지 않고 3xx 응답을 캐싱하면, 공격자의 단일 요청으로 해당 경로의 캐시가 오염되어 서비스 거부 상태가 발생할 수 있습니다.

💡 쉬운 설명

공격자가 특정 헤더를 넣어 요청하면 웹사이트의 이동 안내가 잘못된 형태로 바뀔 수 있습니다. 이 잘못된 응답이 CDN 등에 저장되면 다른 방문자들도 페이지 이동이 되지 않는 문제를 겪게 됩니다.

🇺🇸 원문 (English)

Next.js is a React framework for building full-stack web applications. From 12.2.0 to before 15.5.16 and 16.2.5, an external client could send a x-nextjs-data header on a normal request to a path handled by middleware that returns a redirect. When that happened, the middleware/proxy could treat the request as a data request and replace the standard Location redirect header with the internal x-nextjs-redirect header. Browsers do not follow x-nextjs-redirect, so the response became an unusable redirect for normal clients. If the application was deployed behind a CDN or reverse proxy that caches 3xx responses without varying on this header, a single attacker request could poison the cached redirect response for the affected path. Subsequent visitors could then receive a cached redirect response without a Location header, causing a denial of service for that redirect path until the cache entry expired or was purged. This vulnerability is fixed in 15.5.16 and 16.2.5.

📍 영향받는 시스템

Next.js 12.2.0 이상 15.5.16 미만, 16.0.0 이상 16.2.5 미만 버전을 사용하는 미들웨어 기반 웹 애플리케이션

⚔️ 공격 벡터

x-nextjs-data 헤더를 포함한 단일 HTTP 요청을 리다이렉트 경로로 보내 CDN/리버스 프록시의 3xx 응답 캐시를 오염시킴

🛡️ 대응 방법

Next.js를 15.5.16 또는 16.2.5 이상으로 업그레이드하고, 3xx 응답 캐싱 시 x-nextjs-data 헤더 기준 Vary 설정 또는 캐시 퍼지를 적용

🔧 검증 코드

출력된 next 버전이 15.5.16 또는 16.2.5 미만이면 취약하므로 업그레이드가 필요하며, 해당 이상이면 패치된 버전입니다.

Shell / Script
npm ls next 2>/dev/null | grep -E 'next@'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L

💻 영향받는 소프트웨어

Next.js