Next.js 의 CDN 캐시 포이즈닝 취약점(CVE-2025-32421)이 공개됐다. 14.2.24 초과 ~ 15.1.6 미만 버전이 대상이며, `?__nextDataRequest=1` 쿼리와 `x-now-route-matches` 헤더를 동시에 조작하는 레이스 컨디션으로 비캐시 데이터의 응답 바디를 캐시 가능한 요청에 주입할 수 있다.
핵심 포인트- 영향 버전: Next.js 14.2.24 초과 ~ 15.1.6 미만
- 공격 원리: 두 요청을 정밀한 타이밍에 전송 — `?__nextDataRequest=1`(비캐시 데이터 요청)과 `x-now-route-matches` 헤더를 가진 일반 요청을 동시 발송, 일부 CDN 이 explicit cache-control 없이 200 OK 를 캐시하는 동작을 이용
- 피해 범위: CDN 캐시 오염에 한정. 백엔드 접근·권한 상승 불가. 정밀한 타이밍과 취약한 CDN 설정이 모두 필요해 실제 악용 난이도는 높음
- Vercel 호스팅 사용자는 플랫폼이 explicit cache-control 을 강제해 영향 없음
- 수정 버전(15.1.6, 14.2.24)은 응답에서 `x-now-route-matches` 헤더를 제거해 취약점 차단
- 자체 호스팅 임시 대응: CDN 레이어에서 `x-now-route-matches` 헤더 제거 또는 위험 응답에 `cache-control: no-store` 적용
왜 읽나Next.js 를 자체 CDN 앞에 호스팅하는 팀이 패치 버전 적용 여부와 임시 우회 방법을 즉시 확인해야 한다.