🇰🇷 한글 설명
Next.js의 특정 버전에서 서버 측 fetch 호출 시 요청 본문(body)이 다르더라도 동일한 URL이면 캐시된 응답을 반환하는 취약점이 발견되었습니다. 이로 인해 POST 요청의 응답 본문에 포함된 기밀 데이터가 다른 요청으로 유출될 수 있습니다.
💡 쉬운 설명
웹사이트가 데이터를 불러올 때, 서로 다른 요청임에도 불구하고 이전에 사용했던 데이터를 잘못 가져다 쓰는 문제입니다. 이 과정에서 다른 사용자의 개인정보나 중요한 데이터가 노출될 위험이 있습니다.
🇺🇸 원문 (English)
Next.js is a React framework for building full-stack web applications. In versions 12.0.0 through 15.5.20 and 16.0.0 through 16.2.10, a server-side fetch with a request body may return a cached response body from a different request to the same URL but different body. Confidential data in the POST's response body would then leak to unauthorized requests. Though the request itself will not be deduped. This only applies to fetch calls with a request that has a different init than the one passed to fetch. A safe request would be: fetch(new Request(init), init). An unsafe request would be: fetch(new Request(init), aDifferentInit). This issue has been fixed in versions 15.5.21 and 16.2.11.
📍 영향받는 시스템
Next.js versions 12.0.0-15.5.20 and 16.0.0-16.2.10
⚔️ 공격 벡터
서로 다른 요청 본문을 가진 동일 URL에 대한 fetch 호출을 통해 캐시된 민감 데이터를 탈취
🛡️ 대응 방법
Next.js를 15.5.21 또는 16.2.11 이상의 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 Next.js 버전을 확인하여 취약한 버전 범위(12.0.0-15.5.20 또는 16.0.0-16.2.10)에 해당하는지 확인합니다.
npm list next | grep next