본문 바로가기
Tech Notes

Next.js 긴급 보안 취약점 CVE-2025-66478 정리

by miracle-tech 2026. 1. 12.
728x90
반응형

2025년 12월 3일, Next.js에서 CVSS 10.0 (최고 심각도) 보안 취약점이 공개되었습니다. "React2Shell"이라고도 불리는 이 취약점은 인증 없이 서버에서 임의 코드를 실행할 수 있는 치명적인 RCE(Remote Code Execution) 취약점입니다.

영향받는 버전

버전 영향 여부

Next.js 15.x ~ 16.x (App Router) ⚠️ 취약
Next.js 14.3.0-canary.77 이상 ⚠️ 취약
Next.js 14.x stable ✅ 안전
Next.js 13.x ✅ 안전
Pages Router 사용 ✅ 안전
Edge Runtime ✅ 안전

취약점 원인

React Server Components(RSC)의 "Flight" 프로토콜에서 발생하는 역직렬화(Deserialization) 취약점입니다.

서버가 악의적으로 조작된 HTTP 요청을 받으면, Next-Action 헤더를 통해 공격자가 서버 측 실행 로직을 조작할 수 있습니다. Prototype Pollution을 통해 Function 생성자에 접근하여 임의의 JavaScript 코드를 실행할 수 있게 됩니다.

위험성

  • 인증 불필요: 로그인, 세션, CSRF 토큰 없이 공격 가능
  • 기본 설정으로 취약: create-next-app으로 생성한 앱도 즉시 취약
  • 거의 100% 성공률: 테스트 결과 매우 높은 공격 성공률
  • 실제 공격 발생: 2025년 12월 5일부터 실제 악용 사례 탐지됨 (주로 코인 마이너 설치)

해결 방법

1. 즉시 업데이트

# npm
npm install next@latest react@latest react-dom@latest

# yarn
yarn upgrade next react react-dom

2. 자동 검사 도구 사용

npx fix-react2shell-next

이 명령어로 프로젝트의 취약 여부를 확인하고 자동으로 버전을 업데이트할 수 있습니다.

3. 패치된 버전

  • Next.js 15.x → 15.1.4 이상으로 업그레이드
  • Next.js 16.x → 16.0.4 이상으로 업그레이드
  • Next.js 14 Canary 사용 중 → 14.x stable로 다운그레이드

내 프로젝트 확인하기

package.json에서 Next.js 버전을 확인하세요:

{
  "dependencies": {
    "next": "14.2.3"  // 14.x stable이면 안전
  }
}

Vercel 호스팅 사용자

Vercel에 배포된 프로젝트는 플랫폼 레벨에서 악성 요청 패턴을 차단하고 있습니다. 하지만 코드베이스 자체의 보안을 위해 반드시 업데이트하세요.

마무리

이번 취약점은 최근 JavaScript 생태계에서 가장 심각한 보안 이슈 중 하나입니다. Next.js 15 이상을 사용 중이라면 지금 바로 업데이트하시기 바랍니다.


참고 자료

728x90