React Server Components의 심각한 보안 취약점

I
Inkyu Oh

Front-End2025.12.08

React 블로그 포스트 번역
2025년 12월 3일


2025년 12월 3일 React 팀


React Server Components에 인증되지 않은 원격 코드 실행 취약점이 존재합니다. 즉시 업그레이드할 것을 권장합니다.


11월 29일, Lachlan Davidson이 React Server Function 엔드포인트로 전송되는 페이로드를 React가 디코딩하는 방식의 결함을 악용하여 인증되지 않은 원격 코드 실행을 가능하게 하는 React의 보안 취약점을 보고했습니다.
앱이 React Server Function 엔드포인트를 구현하지 않더라도 React Server Components를 지원하는 경우 여전히 취약할 수 있습니다.
이 취약점은 CVE-2025-55182로 공개되었으며 CVSS 10.0으로 평가됩니다.
취약점은 다음 패키지의 19.0, 19.1.0, 19.1.1, 19.2.0 버전에 존재합니다:

즉시 조치 필요

수정 사항은 19.0.1, 19.1.2, 19.2.1 버전에서 도입되었습니다. 위의 패키지를 사용 중이라면 즉시 수정된 버전 중 하나로 업그레이드하세요.
앱의 React 코드가 서버를 사용하지 않는다면 이 취약점의 영향을 받지 않습니다. 앱이 React Server Components를 지원하는 프레임워크, 번들러 또는 번들러 플러그인을 사용하지 않는다면 이 취약점의 영향을 받지 않습니다.

영향을 받는 프레임워크 및 번들러

일부 React 프레임워크와 번들러는 취약한 React 패키지에 의존하거나, 피어 의존성을 가지거나, 포함하고 있었습니다. 다음 React 프레임워크 및 번들러가 영향을 받습니다: next, react-router, waku, @parcel/rsc, @vitejs/plugin-rsc, rwsdk.
업그레이드 방법에 대한 업그레이드 지침이 제공되면 이 게시물을 업데이트하겠습니다.

호스팅 제공자 완화 조치

우리는 여러 호스팅 제공자와 협력하여 임시 완화 조치를 적용했습니다.
이를 앱 보안에 의존해서는 안 되며, 여전히 즉시 업데이트해야 합니다.

취약점 개요

React Server Functions는 클라이언트가 서버의 함수를 호출할 수 있게 합니다. React는 프레임워크와 번들러가 React 코드를 클라이언트와 서버 모두에서 실행하도록 하는 데 사용하는 통합 지점과 도구를 제공합니다. React는 클라이언트의 요청을 HTTP 요청으로 변환하여 서버로 전달합니다. 서버에서 React는 HTTP 요청을 함수 호출로 변환하고 필요한 데이터를 클라이언트에 반환합니다.
인증되지 않은 공격자는 Server Function 엔드포인트에 대한 악의적인 HTTP 요청을 작성할 수 있으며, React에 의해 역직렬화될 때 서버에서 원격 코드 실행을 달성할 수 있습니다. 취약점의 추가 세부 사항은 수정 사항의 배포가 완료된 후 제공될 것입니다.

업데이트 지침

Next.js

모든 사용자는 자신의 릴리스 라인에서 최신 패치 버전으로 업그레이드해야 합니다:
npm install [email protected] // for 15.0.x

npm install [email protected] // for 15.1.x

npm install [email protected] // for 15.2.x

npm install [email protected] // for 15.3.x

npm install [email protected] // for 15.4.x

npm install [email protected] // for 15.5.x

npm install [email protected] // for 16.0.x
Next.js 14.3.0-canary.77 이상의 카나리 릴리스를 사용 중이라면 최신 안정 14.x 릴리스로 다운그레이드하세요:
npm install next@14
자세한 내용은 Next.js 변경 로그를 참조하세요.

React Router

React Router의 불안정한 RSC API를 사용 중이라면 다음 package.json 의존성이 존재하는 경우 업그레이드해야 합니다:
npm install react@latest

npm install react-dom@latest

npm install react-server-dom-parcel@latest

npm install react-server-dom-webpack@latest

npm install @vitejs/plugin-rsc@latest

Expo

자세한 내용은 expo.dev/changelog의 문서를 참조하세요.

Redwood SDK

rwsdk>=1.0.0-alpha.0 버전을 사용 중인지 확인하세요.
최신 베타 버전의 경우:
npm install rwsdk@latest
최신 react-server-dom-webpack으로 업그레이드하세요:
npm install react@latest react-dom@latest react-server-dom-webpack@latest
자세한 마이그레이션 지침은 Redwood 문서를 참조하세요.

Waku

최신 react-server-dom-webpack으로 업그레이드하세요:
npm install react@latest react-dom@latest react-server-dom-webpack@latest waku@latest
자세한 마이그레이션 지침은 Waku 공지를 참조하세요.

@vitejs/plugin-rsc

최신 RSC 플러그인으로 업그레이드하세요:
npm install react@latest react-dom@latest @vitejs/plugin-rsc@latest

react-server-dom-parcel

최신 버전으로 업데이트하세요:
npm install react@latest react-dom@latest react-server-dom-parcel@latest

react-server-dom-turbopack

최신 버전으로 업데이트하세요:
npm install react@latest react-dom@latest react-server-dom-turbopack@latest

react-server-dom-webpack

최신 버전으로 업데이트하세요:
npm install react@latest react-dom@latest react-server-dom-webpack@latest

타임라인

  • 11월 29일: Lachlan Davidson이 Meta Bug Bounty를 통해 보안 취약점을 보고했습니다.
  • 11월 30일: Meta 보안 연구원들이 확인하고 React 팀과 함께 수정 작업을 시작했습니다.
  • 12월 1일: 수정 사항이 작성되었고 React 팀은 영향을 받는 호스팅 제공자 및 오픈 소스 프로젝트와 협력하여 수정 사항을 검증하고, 완화 조치를 구현하고, 수정 사항을 배포하기 시작했습니다.
  • 12월 3일: 수정 사항이 npm에 게시되었고 CVE-2025-55182로 공개 공개되었습니다.

기여

이 취약점을 발견하고 보고하며 수정을 돕기 위해 노력해주신 Lachlan Davidson에게 감사드립니다.
0
7

댓글

?

아직 댓글이 없습니다.

첫 번째 댓글을 작성해보세요!

Inkyu Oh님의 다른 글

더보기

유사한 내용의 글