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
'Tech Notes' 카테고리의 다른 글
| MCP Server 만들기 (0) | 2026.01.12 |
|---|---|
| uv: Python 개발자라면 지금 바로 설치해야 할 차세대 패키지 매니저 (0) | 2026.01.12 |
| Python 데이터 분석 4대 라이브러리 정리 (0) | 2026.01.07 |
| NestJS + gRPC 엔터프라이즈 아키텍처 (0) | 2025.12.23 |
| 2025 AI 코딩 도구 총정리 (0) | 2025.12.17 |