pile·
보안·vercel-blogVercel Blog·

Next.js 미들웨어 캐시 포이즈닝 취약점 CVE-2025-49005

Next.js App Router 15.3.0~15.3.2 및 Vercel CLI 41.4.1~42.2.0에서 미들웨어가 리라이트/리다이렉트를 수행할 때 캐시 버스팅 파라미터가 제거되면서 RSC 페이로드와 HTML 응답이 동일 캐시 키를 공유하는 캐시 포이즈닝 취약점이 발견됐다. Vercel 호스팅은 브라우저 캐시 수준에 그치지만 self-hosted + 외부 CDN 환경에서는 CDN 포이즈닝으로 확대될 수 있다.

핵심 포인트
  • 영향 버전: Next.js App Router 15.3.0~15.3.2, Vercel CLI 41.4.1~42.2.0.
  • 원인: 미들웨어 리다이렉트 시 캐시 버스팅 파라미터 탈락 → RSC 페이로드와 HTML 응답 간 캐시 키 구분 실패.
  • Vercel 호스팅: 브라우저 캐시만 영향. 자체 호스팅 + 외부 CDN: CDN 전체 포이즈닝 위험.
  • 즉시 해결책: Next.js 15.3.3 업그레이드 (Vary 헤더 올바르게 설정됨).
  • 임시 대응: Vary 헤더 수동 추가 또는 미들웨어 리다이렉트에 유니크 캐시버스팅 파라미터 삽입.
상세 정리
  • 취약점 메커니즘: 미들웨어가 리라이트/리다이렉트 처리 시 Next.js 캐시 버스팅 파라미터가 제거되어 RSC와 HTML이 같은 캐시 키로 저장됨.
  • 영향 범위: 미들웨어에서 리라이트/리다이렉트를 사용하는 프로젝트. 미들웨어 미사용 시 무관.
  • Vercel 환경 제한: Vercel 인프라가 RSC/HTML를 CDN 레벨에서 구분하므로 브라우저 캐시 오염만 발생.
  • 자체 호스팅 위험: 외부 CDN이 RSC/HTML 콘텐츠 타입을 캐시 키로 구분하지 않으면 CDN 전체가 오염된 응답을 캐싱함.
  • 수정 내용(15.3.3): Vary: RSC, Next-Router-State-Tree, Next-Router-Prefetch 헤더를 올바르게 설정하여 응답 유형별 캐시 키 분리 보장.
  • 임시 해결 1: 응답에 Vary 헤더(RSC, Next-Router-State-Tree, Next-Router-Prefetch) 수동 추가.
  • 임시 해결 2: 미들웨어 리다이렉트에 유니크 캐시버스팅 검색 파라미터를 추가하여 캐시 키 자연 분리.
  • 공개 일자: 2025-07-03. 발견자: Aaron Brown, Zack Tanner (Vercel 내부팀).
왜 읽나Next.js App Router + 미들웨어를 사용하는 모든 프로젝트에서 15.3.3 업그레이드 또는 Vary 헤더 추가 조치가 필요하다.
vercel-blog
Vercel Blog 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 보안·gitlab-engGitLab Blog·

    Serena MCP 에이전트의 치명적 원격 코드 실행 취약점 분석

    GitLab 보안팀이 AI 코딩 에이전트 Serena(월 PyPI 다운로드 13.6만 건)에서 치명적 원격 코드 실행 취약점을 발견했다. Jinja2 비샌드박스 환경과 신뢰 모델의 미검사 경로가 결합해 개발자가 악의적 저장소를 열기만 해도 코드가 실행된다. serena-agent 1.7.0에서 SandboxedEnvironment 교체로 수정 완료됐다.

    요약 이어보기
    #mcp#security#rce+2