원문: Critical Security Vulnerability in React Server Components — React Blog원문은 CC-BY-4.0 라이선스로 제공되며, 이 글은 한국어로 번역한 2차 저작물입니다.
React Server Components에 인증되지 않은 원격 코드 실행 취약점이 존재합니다.
즉시 업그레이드할 것을 권장합니다.
2025년 11월 29일, Lachlan Davidson은 React Server Function 엔드포인트로 전송된 페이로드 디코딩 방식의 결함을 악용하여 인증되지 않은 원격 코드 실행을 허용하는 React의 보안 취약점을 보고했습니다.
애플리케이션에 React Server Function 엔드포인트가 구현되어 있지 않더라도, React Server Components를 지원하는 경우 취약할 수 있습니다.
이 취약점은 CVE-2025-55182로 공개되었으며 CVSS 점수 10.0으로 평가되었습니다.
이 취약점은 다음 패키지의 버전 19.0, 19.1.0, 19.1.1, 19.2.0에 존재합니다:
즉시 조치 필요
애플리케이션의 React 코드가 서버를 사용하지 않는 경우, 이 취약점에 영향을 받지 않습니다. 애플리케이션이 React Server Components를 지원하는 프레임워크, 번들러 또는 번들러 플러그인을 사용하지 않는 경우, 이 취약점에 영향을 받지 않습니다.
영향을 받는 프레임워크 및 번들러
일부 React 프레임워크 및 번들러는 취약한 React 패키지에 의존하거나, peer dependency로 포함하거나, 함께 포함하고 있었습니다. 다음 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
모든 사용자는 릴리스 라인의 최신 패치 버전으로 업그레이드해야 합니다:
15.0.8, 15.1.12, 15.2.9, 15.3.9, 15.4.10, 15.5.10, 15.6.0-canary.61, 16.0.11, 16.1.5
Next.js 13 버전 (
13.3.x, 13.4.x, 또는 13.5.x)의 13.3 또는 그 이후 버전을 사용 중이라면 14.2.35 버전으로 업그레이드하십시오.next@14.3.0-canary.77 또는 이후 버전의 canary 릴리스를 사용 중이라면, 최신 안정화된 14.x 릴리스로 다운그레이드하십시오:최신 업데이트 지침은 Next.js 블로그를 참조하고, 자세한 내용은 이전 변경 로그를 확인하십시오.
React Router
React Router의 불안정한 RSC API를 사용하는 경우, 다음
package.json 종속성을 업그레이드해야 합니다:Expo
완화 조치에 대한 자세한 내용은 expo.dev/changelog에서 해당 문서를 읽어보십시오.
Redwood SDK
rwsdk>=1.0.0-alpha.0 버전인지 확인하십시오.최신 베타 버전은 다음과 같습니다:
최신
react-server-dom-webpack으로 업그레이드하십시오:마이그레이션 지침은 Redwood 문서를 참조하십시오.
Waku
최신
react-server-dom-webpack으로 업그레이드하십시오:마이그레이션 지침은 Waku 공지를 참조하십시오.
@vitejs/plugin-rsc
@vitejs/plugin-rsc최신 RSC 플러그인으로 업그레이드하십시오:
react-server-dom-parcel
react-server-dom-parcel최신 버전으로 업데이트하십시오:
react-server-dom-turbopack
react-server-dom-turbopack최신 버전으로 업데이트하십시오:
react-server-dom-webpack
react-server-dom-webpack최신 버전으로 업데이트하십시오:
React Native
모노레포 또는
react-dom을 사용하지 않는 React Native 사용자의 경우, package.json에 react 버전이 고정되어 있으므로 추가적인 단계가 필요하지 않습니다.모노레포에서 React Native를 사용하는 경우, 설치된 경우에만 영향을 받는 패키지를 업데이트해야 합니다:
react-server-dom-webpackreact-server-dom-parcelreact-server-dom-turbopack
이는 보안 권고를 완화하기 위해 필요하며,
react 및 react-dom을 업데이트할 필요가 없으므로 React Native에서 버전 불일치 오류가 발생하지 않습니다.자세한 내용은 이 이슈를 참조하십시오.
타임라인
- 11월 29일: Lachlan Davidson이 Meta Bug Bounty를 통해 보안 취약점을 보고했습니다.
- 11월 30일: Meta 보안 연구원들이 이를 확인하고 React 팀과 함께 수정 작업을 시작했습니다.
- 12월 1일: 수정 사항이 생성되었고 React 팀은 영향을 받는 호스팅 제공업체 및 오픈 소스 프로젝트와 협력하여 수정 사항을 검증하고, 완화 조치를 구현하며, 수정을 배포하기 시작했습니다.
- 12월 3일: 수정 사항이 npm에 게시되었고 CVE-2025-55182로 공개되었습니다.
출처
이 취약점을 발견, 보고하고 수정하는 데 도움을 준 Lachlan Davidson에게 감사드립니다.


