최근 보안 업계와 프론트엔드 생태계가 발칵 뒤집혔습니다. React와 Next.js 환경에서 **인증 없이 서버를 장악할 수 있는 치명적인 취약점(CVE-2025-55182, CVE-2025-66478)**이 발견되었기 때문입니다.
보안뉴스 등 주요 매체에서 “심각도 10(만점)”으로 경고하고 있는 이른바 ‘React2Shell’ 취약점의 원인과 해결 방법을 긴급하게 정리했습니다.
1. 무슨 일이 일어난 건가요? (React2Shell)
이번 취약점은 리액트 서버 컴포넌트(RSC)가 서버와 클라이언트 간 통신을 위해 사용하는 ‘Flight’ 프로토콜의 직렬화(Serialization) 과정에서 발견되었습니다.
- 취약점 명칭: React2Shell
- CVE 번호: CVE-2025-55182 (React), CVE-2025-66478 (Next.js)
- 심각도 (CVSS): 10.0 (CRITICAL)
- 핵심 위험: 공격자가 특수하게 조작된 HTTP 요청을 보내면, **로그인하지 않은 상태에서도 서버에서 임의의 코드를 실행(RCE)**할 수 있습니다.
단순히 화면을 변조하는 XSS 수준이 아니라, 서버의 셸(Shell) 권한을 탈취하여 민감한 데이터를 빼내거나 채굴 악성코드를 심는 등 서버를 마음대로 조종할 수 있는 매우 위험한 이슈입니다.
2. 취약점의 원리: 불안전한 역직렬화
RSC 아키텍처에서 리액트는 서버 함수나 데이터를 클라이언트로 보낼 때 독자적인 포맷으로 변환(직렬화)하고, 서버가 요청을 받을 때 이를 다시 원래대로 복구(역직렬화)합니다.
문제는 서버가 클라이언트로부터 받은 데이터를 역직렬화하는 과정에서 검증이 미흡했다는 점입니다.
- 공격자가 RSC 엔드포인트(Server Action 등)로 조작된 페이로드를 전송합니다.
- 서버(React/Next.js)는 이 데이터를 안전하다고 믿고 역직렬화를 시도합니다.
- 이 과정에서 공격자가 심어둔 악성 코드가 서버 메모리상에서 실행됩니다.
특히 react-server 패키지를 사용하는 모든 환경이 위험 범위에 포함되며, Next.js뿐만 아니라 Waku, RedwoodJS 등 RSC를 구현한 다른 프레임워크들도 영향을 받을 수 있습니다.
3. 내 프로젝트도 위험한가요? (영향받는 버전)
만약 React 19 또는 Next.js 15 (App Router 사용 시) 버전을 사용 중이라면 즉시 버전을 확인해야 합니다.
영향을 받는 버전 범위
- React: 19.0.0, 19.1.0, 19.1.1, 19.2.0
- Next.js: 15.0.x ~ 15.1.8 (React 19 Canary/Beta를 사용하는 경우 포함)
- 관련 패키지: react-server-dom-webpack, react-server-dom-parcel 등
주의: Pages Router만 사용하는 레거시 Next.js 프로젝트는 RSC를 사용하지 않으므로 직접적인 영향은 없을 수 있으나, 최신 라이브러리 의존성 관계를 확인하는 것이 안전합니다.
4. 해결 방법: 즉시 업데이트 (Patch Now)
다행히 React 팀과 Vercel 팀에서 긴급 패치를 배포했습니다. 지금 당장 프로젝트의 의존성을 업데이트해야 합니다.
4.1. Next.js 프로젝트 업데이트
codeBash
# npm 사용 시
npm install next@latest react@latest react-dom@latest
# yarn 사용 시
yarn add next@latest react@latest react-dom@latest
# pnpm 사용 시
pnpm add next@latest react@latest react-dom@latest- Next.js 15.0 사용자: 15.0.5 이상으로 업데이트
- Next.js 15.1 사용자: 15.1.9 이상으로 업데이트
4.2. React 단독 사용 또는 타 프레임워크
react 및 react-server-dom-* 관련 패키지를 다음 버전 이상으로 업데이트하세요.
- 19.0.1
- 19.1.2
- 19.2.1
5. 업데이트가 당장 불가능하다면?
엔터프라이즈 환경이라 즉시 배포가 어렵다면, 임시방편으로 WAF(웹 방화벽) 단에서 방어해야 합니다.
- RSC 관련 요청 헤더(RSC, Next-Router-State-Tree 등)나 바디에 포함된 비정상적인 직렬화 패턴을 차단하는 규칙을 적용해야 하지만, 우회 가능성이 높으므로 패치 적용이 유일하고 확실한 해결책입니다.
6. 결론: 보안은 속도보다 중요하다
Next.js와 React 서버 컴포넌트는 웹 개발의 패러다임을 바꿨지만, 복잡도가 올라간 만큼 ‘직렬화/역직렬화’라는 고전적인 보안 위협이 다시 수면 위로 떠올랐습니다.
이번 React2Shell 사태는 “프레임워크가 알아서 해주겠지”라는 믿음이 얼마나 위험할 수 있는지를 보여줍니다.
지금 바로 package.json을 확인하고 업데이트를 진행하세요. 여러분의 서버는 지금도 공격자들에게 스캔 당하고 있을지 모릅니다.

![[긴급] React·Next.js 심각도 10.0 취약점 발견: 'React2Shell' 대응 가이드 Generated Image December 08, 2025 - 11_22AM](https://storage.googleapis.com/nowissue/wp-content/uploads/2025/12/Generated-Image-December-08-2025-11_22AM-1024x572.jpeg)