react-server-dom-webpack CWE-400 CWE-770 React Server Components DoS (CVE-2026-23870)
- 발행
- 2026년 5월 6일
- 최종 갱신
- 2026년 5월 9일
- 상태
- Active
- GHSA
- GHSA-rv78-f8rc-xrxh
요약
React Server Components 패키지(`react-server-dom-webpack` / `parcel` / `turbopack`) 19.0.0 ~ 19.2.5의 서버 함수 엔드포인트가 조작된 HTTP 요청 처리 시 메모리 부족 또는 과도한 CPU 사용으로 서비스 거부(DoS)에 빠질 수 있는 high(CVSS 7.5) 취약점입니다. 19.0.6 / 19.1.7 / 19.2.6 패치 버전으로 즉시 업그레이드가 권장됩니다.
내 프로젝트는 영향받나요?
사용 중인 react-server-dom-webpack 버전을 입력하면 이 advisory의 영향 여부를 즉시 확인합니다.
ⓘ react-server-dom-webpack 패키지 버전을 입력하면 영향 여부를 즉시 확인합니다.
영향 범위
| 영향받는 범위 | 패치 버전 |
|---|---|
| >=19.2.0 <19.2.6 | 19.0.6 |
| >=19.1.0 <19.1.7 | 19.1.7 |
| >=19.0.0 <19.0.6 | 19.2.6 |
호스팅 환경별 영향
이 취약점은 React Server Components 의 서버 함수(Server Functions) 엔드포인트를 외부에 노출하는 모든 환경에서 영향을 받습니다.
- Next.js App Router (15.x / 16.x): 영향받음. Next.js 자체도 함께 5월 릴리즈에서 패치됨 (15.5.16 / 16.2.5 이상).
- Vercel / Netlify / Cloudflare Pages: 영향받음. 호스팅 어댑터와 무관하게 RSC 런타임이 동일한 패키지를 사용하므로 패치 버전 적용이 필수.
- Self-host Node.js: 영향받음. 직접 RSC 통합을 운영하는 경우,
react-server-dom-*패키지 버전을 직접 점검해야 함. - Parcel / Turbopack 직접 사용: 영향받음.
react-server-dom-parcel,react-server-dom-turbopack도 동일하게 패치 필요.
취약점 메커니즘
React Server Components 는 클라이언트 → 서버 함수 호출을 위해 HTTP 요청을 받아 RSC 페이로드(직렬화된 React 트리)를 역직렬화한 뒤 실행합니다. 이 역직렬화 경로에 입력 크기·중첩·반복 횟수에 대한 충분한 한계(throttling, allocation cap)가 적용되어 있지 않아, 공격자가 의도적으로 거대하거나 깊이 중첩된 페이로드를 보내면 다음과 같은 결과가 발생할 수 있습니다.
- Node.js 프로세스의 힙 메모리 고갈 →
Out of Memory예외 - 직렬화/역직렬화 단계에서의 과도한 CPU 사용 → 응답 지연 → 같은 인스턴스의 다른 요청까지 영향 (Cascading DoS)
CVSS 7.5(High)가 부여된 이유는 (1) 인증 없이도 누구나 시도 가능하고, (2) 단일 요청만으로 서비스 가용성을 떨어뜨릴 수 있으며, (3) RSC를 사용하는 모든 Next.js App Router 프로젝트가 광범위하게 영향받기 때문입니다.
패치 코드 예시
1. 패치 버전으로 업그레이드 (권장)
영향받는 RSC 패키지는 사용하는 React 메이저에 맞춰 패치된 버전을 설치합니다.
# React 19.0.x 사용 중
npm install [email protected] \
[email protected] \
[email protected]
# React 19.1.x 사용 중
npm install [email protected] \
[email protected] \
[email protected]
# React 19.2.x 사용 중 (권장)
npm install [email protected] \
[email protected] \
[email protected]
2. Next.js 사용자
Next.js App Router 사용자는 RSC 패키지를 직접 다루지 않으므로 Next.js 자체를 패치 버전으로 업그레이드하면 됩니다 (May 2026 통합 릴리즈에 함께 포함).
npm install [email protected] # 15.x 라인
npm install [email protected] # 16.x 라인
npm install next@latest # 최신 안정
3. 임시 완화 방안 (패치 적용 전)
업스트림 패치를 즉시 적용하기 어려운 경우, 다음 방어 계층을 운영 환경에 추가하여 영향을 줄일 수 있습니다.
- 요청 본문 크기 제한: 리버스 프록시(Nginx, Cloudflare, AWS ALB) 또는 WAF에서 RSC 엔드포인트의 요청 본문 크기를 사용 패턴에 맞춰 제한 (예: 256KB 또는 1MB).
- 요청 빈도 제한 (Rate Limit): 동일 IP에서 단시간 다량의 RSC 요청이 들어올 경우 차단 또는 throttle.
- 타임아웃 단축: Node.js 런타임의 요청 타임아웃을 짧게 설정해 단일 요청이 전체 인스턴스를 점유하지 못하도록 격리.
이 완화는 우회 가능성이 있으므로 어디까지나 패치 적용 전 일시적 보호망으로 사용해야 하며, 가능한 한 빠르게 패치 버전으로 업그레이드하는 것을 권장합니다.
정리
CVE-2026-23870 은 React Server Components 의 서버 함수 처리 경로에서 자원 사용 한계가 부족하여 단일 요청만으로 서비스 거부에 빠질 수 있는 결함입니다. RSC 또는 Next.js App Router 를 사용하는 모든 프로젝트는 즉시 패치 버전으로 업그레이드해야 합니다.
참고 자료
- GHSA-rv78-f8rc-xrxh (GitHub Advisory) (새 탭에서 열림)
- React 공식 — DoS and Source Code Exposure in RSC (새 탭에서 열림)
- Vercel — Next.js May 2026 security release (새 탭에서 열림)
- Netlify — May 2026 React/Next.js 보안 분석 (새 탭에서 열림)
Credits
- · zpao
ConfigDeck으로 설정 파일 업데이트하기
관련 설정 파일을 ConfigDeck에서 빠르게 생성합니다.
설정 파일 생성기 →AI 코딩 도구 설정도 점검하세요
Cursor, Copilot, Claude Code 등 AI 코딩 도구 설정을 안내합니다.
AI Config 보기 →