🇰🇷 한글 설명
Next.js 13.0.0부터 15.5.16 이전 버전 및 16.2.5 이전 버전에서, beforeInteractive 스크립트와 신뢰할 수 없는 콘텐츠를 함께 사용하는 애플리케이션이 크로스 사이트 스크립팅(XSS)에 취약합니다. 영향받는 버전에서는 직렬화된 스크립트 콘텐츠가 문서에 삽입되기 전에 안전하게 이스케이프되지 않아, 공격자가 제어하는 입력이 의도된 스크립트 컨텍스트를 벗어나 방문자 브라우저에서 임의의 JavaScript를 실행할 수 있습니다. 이 취약점은 15.5.16 및 16.2.5에서 수정되었습니다.
💡 쉬운 설명
웹사이트가 외부에서 들어온 내용을 잘못 처리하면, 해커가 그 안에 악성 코드를 숨겨 방문자의 브라우저에서 실행시킬 수 있습니다. 이 문제는 Next.js의 특정 버전에서 발생하며, 최신 패치 버전으로 업데이트하면 해결됩니다.
🇺🇸 원문 (English)
Next.js is a React framework for building full-stack web applications. From 13.0.0 to before 15.5.16 and 16.2.5, applications that use beforeInteractive scripts together with untrusted content can be vulnerable to cross-site scripting. In affected versions, serialized script content was not escaped safely before being embedded into the document, which could allow attacker-controlled input to break out of the intended script context and execute arbitrary JavaScript in a visitor's browser. This vulnerability is fixed in 15.5.16 and 16.2.5.
📍 영향받는 시스템
Next.js 13.0.0 이상 15.5.16 미만, 16.0.0 이상 16.2.5 미만을 사용하며 beforeInteractive 스크립트를 쓰는 애플리케이션
⚔️ 공격 벡터
공격자가 사용자 입력 등 신뢰할 수 없는 콘텐츠에 악성 스크립트를 삽입해 직렬화 과정에서 스크립트 컨텍스트를 탈출시켜 피해자 브라우저에서 임의 JavaScript를 실행
🛡️ 대응 방법
Next.js를 15.5.16 또는 16.2.5 이상으로 업그레이드 (npm install next@latest 또는 해당 버전 지정)
🔧 검증 코드
출력된 버전이 15.5.16 또는 16.2.5 이상이면 패치 적용된 것이며, 그 미만이면 취약한 버전이므로 즉시 업그레이드가 필요합니다.
npm list next 2>/dev/null | grep next@