next CWE-94 CWE-502 Next.js React Server Components RCE (CVE-2025-55182)
- 발행
- 2025년 12월 3일
- 최종 갱신
- 2026년 5월 9일
- 상태
- Active
- GHSA
- GHSA-9qr9-h5gf-34mp
요약
Next.js App Router 의 React Server Components 가 HTTP 요청 본문의 RSC 페이로드를 안전하지 않게 역직렬화하여, 인증 없는 공격자가 임의 코드를 실행할 수 있는 critical(CVSS 10.0) 취약점입니다. CISA Known Exploited Vulnerabilities 목록에 등재됐고 EPSS 82% 이상으로 실제 공격이 확인된 사례가 있어 즉시 패치가 필수입니다.
내 프로젝트는 영향받나요?
사용 중인 next 버전을 입력하면 이 advisory의 영향 여부를 즉시 확인합니다.
ⓘ next 패키지 버전을 입력하면 영향 여부를 즉시 확인합니다.
영향 범위
| 영향받는 범위 | 패치 버전 |
|---|---|
| >=16.0.0-beta.0 <16.0.7 | 15.0.5 |
| >=15.5.0 <15.5.7 | 15.1.9 |
| >=15.4.0-canary.0 <15.4.8 | 15.2.6 |
| >=15.3.0-canary.0 <15.3.6 | 15.3.6 |
| >=15.2.0-canary.0 <15.2.6 | 15.4.8 |
| >=15.1.0 <15.1.9 | 15.5.7 |
| >=14.3.0-canary.77 <15.0.5 | 16.0.7 |
호스팅 환경별 영향
이 취약점은 React Server Components 의 서버 함수(Server Functions) 엔드포인트가 외부에 노출된 모든 환경에서 영향을 받습니다.
- Next.js App Router (15.x / 16.x): 영향받음. RSC 가 코어 기능이므로 사실상 모든 App Router 프로젝트가 노출됨.
- Vercel / Netlify / Cloudflare Pages: 영향받음. 호스팅 플랫폼은 자체 차단 룰을 추가했더라도, 패치되지 않은 Next.js 버전을 직접 배포한 경우 안전하지 않음.
- Self-host Node.js (
next start): 영향받음. 가장 위험. 호스팅 측 보호가 없으므로 패치가 유일한 안전 확보 수단. - Pages Router only (App Router 미사용): 영향받지 않음. RSC 사용이 전제.
취약점 메커니즘
Next.js App Router 의 Server Function 엔드포인트는 클라이언트가 보낸 HTTP 요청 본문을 RSC 페이로드(직렬화된 React 트리 + 함수 호출 스펙)로 역직렬화한 뒤, 매핑된 서버 함수를 호출합니다. 이 역직렬화 경로에 신뢰할 수 없는 입력에 대한 검증이 부족하여, 공격자가 조작된 페이로드로 다음을 수행할 수 있습니다.
- 의도되지 않은 함수 참조를 역직렬화 시점에 호출
- 호출 인자에 임의 객체/JS 식 주입
- 결과적으로 인증 없이, 사용자 상호작용 없이 서버 측에서 임의 코드 실행
CVSS 10.0 (Critical, AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H) 의 의미:
- 네트워크에서 직접 공격 가능 (AV:N)
- 추가 조건이 거의 필요 없음 (AC:L)
- 인증 불필요 (PR:N)
- 사용자 클릭 등 상호작용 불필요 (UI:N)
- 권한 경계를 넘어 호스팅 시스템에까지 영향 (S:C)
- 기밀성 / 무결성 / 가용성 모두 완전 손상 (C:H/I:H/A:H)
CISA 의 Known Exploited Vulnerabilities 목록에 등재됐고 EPSS 82% 이상이 부여된 것은 이론적 가능성이 아니라 실제 공격이 관찰됨을 의미합니다.
패치 코드 예시
1. 패치 버전으로 즉시 업그레이드 (필수)
각 메이저 라인의 최소 안전 버전:
# 14.x canary 사용 중이라면
npm install [email protected]
# 15.x 라인 — 사용 중인 마이너에 맞춰 가장 가까운 패치
npm install [email protected] # 15.0.x
npm install [email protected] # 15.1.x
npm install [email protected] # 15.2.x
npm install [email protected] # 15.3.x
npm install [email protected] # 15.4.x
npm install [email protected] # 15.5.x
# 16.x 라인
npm install [email protected]
# 또는 최신 안정 버전 (가장 권장)
npm install next@latest
5월 통합 릴리즈(15.5.16 / 16.2.5)로 업그레이드하면 이 RCE를 포함해 5월 13건도 함께 해소되므로, 가능하면 한 번의 작업으로 일괄 처리하는 것이 효율적입니다.
2. 임시 완화 방안 — 매우 제한적
CVSS 10.0 RCE 의 특성상 WAF/리버스 프록시만으로는 신뢰할 수 있는 차단이 불가능합니다. 다음은 패치 적용 직전까지의 위험 감소 수단으로만 사용해야 합니다.
- Server Function 엔드포인트의 외부 노출 차단: 가능한 경우 RSC 액션을 사내망 또는 인증된 사용자에게만 노출.
- 요청 본문 크기·속도 제한: 단일 페이로드 크기와 요청 빈도를 강하게 제한해 공격 표면을 줄임.
- 로그 모니터링 강화: Server Function 호출 로그를 별도로 감사하여 비정상 페이로드를 사후 탐지.
- WAF 시그니처 적용: Cloudflare 등 호스팅 WAF 가 이 CVE에 대한 룰을 제공하면 즉시 적용.
다시 강조하면, 이러한 완화는 임시방편이며 패치가 적용되기 전까지의 위험 노출 시간을 줄일 뿐, RCE 자체를 차단하지는 않습니다. 가능한 한 빠르게 패치 버전으로 업그레이드해야 합니다.
3. 패치 적용 후 확인
업그레이드 후 사용 중인 Next.js 버전이 영향 범위 밖에 있는지 진단기로 다시 확인합니다. 또한 5월 통합 릴리즈에서 추가 패치된 권고들 중 사용 중인 환경에 적용되는 항목이 있는지 함께 점검할 것을 권장합니다.
정리
CVE-2025-55182 는 Next.js App Router 의 React Server Components 역직렬화 결함으로, 인증 없이 임의 코드 실행이 가능한 사실상 최악의 시나리오입니다. CISA KEV 등재와 실제 공격 사례가 보고됐으므로 미패치 인스턴스는 곧바로 침해 위험에 노출되어 있습니다. 운영 중인 모든 Next.js App Router 프로젝트는 즉시 패치 버전(또는 5월 통합 릴리즈)으로 업그레이드하고, 보안 모니터링을 강화해야 합니다.
참고 자료
- GHSA-9qr9-h5gf-34mp (GitHub Advisory) (새 탭에서 열림)
- React 공식 — Critical Security Vulnerability in RSC (새 탭에서 열림)
- Snyk — SNYK-JS-NEXT-14173355 (새 탭에서 열림)
- CISA Known Exploited Vulnerabilities (새 탭에서 열림)
Credits
- · Lachlan Davidson (lachlan2k)
ConfigDeck으로 설정 파일 업데이트하기
관련 설정 파일을 ConfigDeck에서 빠르게 생성합니다.
설정 파일 생성기 →AI 코딩 도구 설정도 점검하세요
Cursor, Copilot, Claude Code 등 AI 코딩 도구 설정을 안내합니다.
AI Config 보기 →