
CVE-2025-55182(React2Shell)에 대한 상세 기술 분석 - React Server Components의 치명적인 RCE 취약점으로, 영향받는 패키지, 악용 메커니즘 및 패치 지침을 포함합니다.
**CVE-2025-55182(“React2Shell”)**는 React Server Components(RSC) 내부, 특히 React Flight 프로토콜 역직렬화 로직에 존재하는 치명적인 원격 코드 실행(RCE) 취약점입니다.
React의 서버 측 엔진이 브라우저에서 오는 데이터를 잘못 파싱합니다.
공격자는 특수하게 조작된 HTTP 요청을 서버에 보낼 수 있습니다.
이 요청은 React 서버 런타임을 속여 임의의 서버 측 JavaScript를 실행하게 합니다.
이를 통해 공격자는 다음을 수행할 수 있습니다:
create-next-app 빌드에서도 동작우리 사이트가 React 19 또는 App Router를 사용하는 Next.js를 사용한다면, 패치가 적용될 때까지 취약한 상태라고 간주해야 합니다.
영향을 받는 패키지와 버전의 완전하고 검증된 목록:
| 패키지 | 취약한 버전 | 패치된 버전 |
|---|---|---|
react-server-dom-webpack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1 |
react-server-dom-parcel | 위와 동일 | 위와 동일 |
react-server-dom-turbopack | 위와 동일 | 위와 동일 |
이 패키지들은 근본 원인인 **React Server Components(RSC)**와 연결되어 있습니다.
이 프레임워크들은 내부적으로 RSC를 사용하므로 취약점을 물려받았습니다:
| 프레임워크 / 도구 | 영향 여부 | 비고 |
|---|---|---|
| Next.js (App Router) | 예 | 가장 심각한 영향을 받음. 취약점은 CVE-2025-66478로 추적됨(현재 CVE-2025-55182로 병합됨). |
| Vite RSC 플러그인 | 예 | React Server Components를 사용하는 모든 설치 환경. |
| Parcel RSC 플러그인 | 예 | 동일한 이유. |
| React Router RSC 프리뷰 | 예 | RSC 서버 로직을 번들로 포함함. |
| RedwoodJS RSC (RedwoodSDK) | 예 | RSC 런타임을 사용함. |
| Waku | 예 | 실험적인 RSC 기반 런타임. |
| React 19 RSC 서버를 패키징하는 모든 프레임워크 | 예 | 해당 보안 권고를 확인해야 함. |
안전을 유지하기 위한 공식적이고 완전한 보안 지침입니다.
패치된 버전으로 업그레이드하세요:
"react-server-dom-webpack": "19.0.1" or "19.1.2" or "19.2.1"
"react-server-dom-parcel": "same"
"react-server-dom-turbopack": "same"
실행:
npm install react-server-dom-webpack@latest react-server-dom-parcel@latest react-server-dom-turbopack@latest
패치된 Next.js 버전으로 업그레이드하세요:
| 메이저 버전 | 안전한 버전 |
|---|---|
| 14.x(안정) | 최신 14.x 보안 릴리스 |
| 15.x | 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7 |
| 16.x | 16.0.7 |
실행:
npm install next@latest
대체 솔루션(임시 수정 및 공식 문서에서 권장도가 낮은 방법)이러한 조치는 문제를 완전히 해결하지는 않지만 단기간 동안 노출 범위를 줄여줍니다:
다음으로 전송되는 multipart/form-data POST 요청을 차단하거나 rate-limit(비율 제한)을 적용하세요:
/app//actions공격자는 형식이 잘못된 multipart 청크에 의존하여 익스플로잇을 트리거합니다.