🇰🇷 한글 설명
Next.js 13.4.0부터 15.5.16 미만, 16.2.5 미만 버전의 App Router 애플리케이션은 CSP nonce를 사용할 때 공유 캐시 뒤에 배포되면 저장형 크로스사이트 스크립팅(XSS)에 취약합니다. 영향받는 버전에서는 요청 헤더에서 파생된 잘못된 형식의 nonce 값이 렌더링된 HTML에 안전하지 않게 반영되어, 공격자가 캐시된 응답을 오염시켜 이후 방문자의 스크립트 실행을 유발할 수 있습니다. 15.5.16 및 16.2.5 버전에서 수정되었습니다.
💡 쉬운 설명
웹 페이지가 보안 인증 값을 잘못 처리해서, 공격자가 악성 코드를 페이지에 심을 수 있는 문제입니다. 공유 캐시를 거치면 그 악성 코드가 다른 사용자에게도 전달될 수 있습니다.
🇺🇸 원문 (English)
Next.js is a React framework for building full-stack web applications. From 13.4.0 to before 15.5.16 and 16.2.5, App Router applications that rely on CSP nonces can be vulnerable to stored cross-site scripting when deployed behind shared caches. In affected versions, malformed nonce values derived from request headers could be reflected into rendered HTML in an unsafe way, allowing an attacker to poison cached responses and cause script execution for later visitors. This vulnerability is fixed in 15.5.16 and 16.2.5.
📍 영향받는 시스템
Next.js 13.4.0 이상 15.5.16 미만, 16.2.5 미만을 사용하는 App Router 기반 애플리케이션 (CSP nonce 사용 시)
⚔️ 공격 벡터
공격자가 조작된 nonce 헤더를 포함한 요청을 보내 캐시에 악성 응답을 저장시키고, 이후 일반 사용자가 해당 캐시 응답을 받아 스크립트가 실행됨
🛡️ 대응 방법
Next.js를 15.5.16 또는 16.2.5 이상으로 업그레이드 (npm install next@latest 또는 해당 버전 지정)
🔧 검증 코드
출력된 next 버전이 13.4.0~15.5.15 또는 16.0.0~16.2.4 범위에 있으면 취약하므로 15.5.16 또는 16.2.5 이상으로 업그레이드가 필요하며, 버전이 그 이상이면 안전합니다.
npm ls next 2>/dev/null | grep -E 'next@'