Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-55182 — react CVE-2025-55182 | Kitploit
도구/GitHubGitHub/tanvirahmedcs/cve-2025-55182
Vulnerability ScannersWeb Vulnerability ScannersVulnerability AnalysisExploitationWeb Application ExploitationPenetration Testing
GitHubtanvirahmedcs/cve-2025-55182

CVE-2025-55182

react CVE-2025-55182

저장소 보기
33개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-55182 — React Server Components 인증되지 않은 RCE

심각도: Critical — CVSS 10.0
CWE: CWE-502 (신뢰할 수 없는 데이터 역직렬화)
공급업체: Meta (Facebook)
공개일: 2025년 12월 3일


개요

CVE-2025-55182는 React Server Components(RSC)에서 발견된 최대 심각도의 인증되지 않은 원격 코드 실행(RCE) 취약점으로, React2Shell이라고 명명되었습니다. 이 결함은 React가 Flight 프로토콜을 통해 React Server Function 엔드포인트로 전송된 페이로드를 디코딩하는 방식에 있습니다. 공격자는 취약한 서버에 단일의 특수 제작된 HTTP POST 요청을 전송하여 임의의 코드를 실행할 수 있습니다. 자격 증명이나 사용자 상호작용이 필요하지 않습니다.

명시적인 Server Function 엔드포인트를 노출하지 않는 애플리케이션도 React Server Components를 지원하는 경우 여전히 취약합니다.


영향을 받는 패키지 및 버전

도구 다운로드
패키지취약한 버전패치된 버전
react-server-dom-webpack19.0.0, 19.1.0, 19.1.1, 19.2.0≥ 19.0.1 / 19.1.2 / 19.2.1
react-server-dom-parcel19.0.0, 19.1.0, 19.1.1, 19.2.0≥ 19.0.1 / 19.1.2 / 19.2.1
react-server-dom-turbopack19.0.0, 19.1.0, 19.1.1, 19.2.0≥ 19.0.1 / 19.1.2 / 19.2.1

영향을 받는 프레임워크 (취약한 React 패키지를 사용할 경우): Next.js 15.x / 16.x (App Router), React Router, Waku, RedwoodSDK, Parcel RSC, Vite RSC 플러그인.


CVSS v3.1 세부 분석

메트릭값
공격 벡터네트워크
공격 복잡도낮음
필요한 권한없음
사용자 상호작용없음
범위변경됨
기밀성높음
무결성높음
가용성높음
전체 점수10.0 (Critical)

벡터 문자열: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H


취약점 작동 방식

React Server Components는 Flight 프로토콜이라는 바이너리 와이어 형식을 사용하여 서버에서 클라이언트로 컴포넌트 트리를 스트리밍합니다. 동일한 프로토콜이 Server Functions(이전 Server Actions)도 처리합니다. 이는 브라우저에서 직렬화된 인수를 수락하는 호출 가능한 엔드포인트입니다.

취약점은 역직렬화기에 있습니다. React가 Flight 페이로드를 처리할 때, 임의의 서버 측 객체를 인스턴스화하도록 속일 수 있어 완전한 RCE로 이어집니다. RSC가 활성화될 때마다 Flight 엔드포인트가 기본적으로 노출되고 프로토콜 수준에 인증 게이트가 없기 때문에, 익스플로잇에는 서버에 대한 네트워크 액세스만 필요합니다.


Nuclei 템플릿

포함된 템플릿 CVE-2025-55182.yaml은 세 가지 상호 보완적인 탐지 방법을 사용합니다.

요청 1 — 일반 RSC Flight 엔드포인트 프로브

루트 경로에 Content-Type: text/x-component와 함께 최소한의 POST를 전송합니다. 취약한(또는 접근 가능한) RSC 서버는 동일한 콘텐츠 유형과 Flight 스트림 본문으로 응답하며, 해당 행은 영숫자 행 ID와 콜론(예: 0:, 1:) 또는 React 참조 기호($L, $S, $I, $@)로 시작합니다.

root@kitploit:~
POST / HTTP/1.1
Content-Type: text/x-component
Accept: text/x-component, */*

매치 조건: HTTP 200 + text/x-component 헤더 + 본문의 Flight 스트림 정규식.

요청 2 — Next.js App Router RSC 프로브

Next.js는 RSC: 1 헤더와 ?_rsc= 쿼리 매개변수를 통해 RSC 요청을 신호합니다. 이 요청은 브라우저 프리페치를 모방하여 App Router Flight 엔드포인트에 접근 가능한지 확인합니다.

root@kitploit:~
GET /?_rsc=1 HTTP/1.1
Accept: text/x-component
RSC: 1
Next-Router-State-Tree: %5B%22%22%2C%7B%7D%5D

매치 조건: HTTP 200 + text/x-component 헤더.

요청 3 — Server Function (Action) 엔드포인트 프로브

Next-Action 헤더(Server Functions를 호출하는 메커니즘)와 함께 최소한의 잘못된 Flight 페이로드를 POST합니다. 취약한 서버는 페이로드를 역직렬화하려고 시도합니다. RSC 특정 헤더를 포함하는 오류 응답조차도 엔드포인트가 존재함을 확인합니다.

root@kitploit:~
POST / HTTP/1.1
Content-Type: text/x-component
Next-Action: 0000000000000000000000000000000000000000

매치 조건: HTTP 200/400/500 + text/x-component 또는 x-action-revalidated 헤더.

파일 기반(수동) 탐지

로컬 *.json 파일(예: package-lock.json, yarn.lock)을 스캔하여 취약한 패키지 이름과 19.0.0, 19.1.0, 19.1.1 또는 19.2.0과 일치하는 버전 정규식을 찾습니다. 네트워크 트래픽 없이 저장소 또는 CI 파이프라인을 감사하는 데 유용합니다.


사용법

사전 요구 사항

  • Nuclei v3.x 이상
root@kitploit:~
# Install / update Nuclei
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest

활성 스캔 — 단일 대상

root@kitploit:~
nuclei -target CVE-2025-55182.yaml -u https://target.example.com

활성 스캔 — 대상 목록

root@kitploit:~
nuclei -target CVE-2025-55182.yaml -l targets.txt

수동 스캔 — 로컬 프로젝트 디렉토리

root@kitploit:~
nuclei -target CVE-2025-55182.yaml -target ./path/to/project

JSON 보고와 함께 상세 출력

root@kitploit:~
nuclei -target CVE-2025-55182.yaml -u https://target.example.com -v -je results.json

속도 제한 스캔 (프로덕션 대상에 권장)

root@kitploit:~
nuclei -target CVE-2025-55182.yaml -u https://target.example.com -rl 10 -timeout 10

해결 방법

즉시 업그레이드하여 패치된 버전으로 전환하세요:

root@kitploit:~
# npm
npm install react-server-dom-webpack@latest

# yarn
yarn upgrade react-server-dom-webpack react-server-dom-parcel react-server-dom-turbopack

# pnpm
pnpm update react-server-dom-webpack react-server-dom-parcel react-server-dom-turbopack

브랜치별 최소 안전 버전:

브랜치최소 안전 버전
19.0.x19.0.1
19.1.x19.1.2
19.2.x19.2.1

임시 완화 조치 (즉시 업그레이드가 불가능한 경우):

  • WAF 또는 리버스 프록시 계층에서 RSC/Flight 엔드포인트로 향하는 HTTP POST 요청을 차단합니다.
  • 패치를 적용할 수 있을 때까지 React Server Components를 완전히 비활성화합니다.
  • 인바운드 POST 요청에서 text/x-component 콘텐츠 유형을 대상으로 하는 WAF 규칙을 배포합니다(이 CVE에 대한 Google Cloud Armor 규칙이 공개적으로 제공됩니다).

참고 사항 및 제한 사항

  • HTTP 프로브의 긍정 매치는 Flight 엔드포인트에 접근 가능함을 확인하며, 이는 취약점의 강력한 지표입니다. 정확한 버전 확인을 위해서는 package-lock.json, node_modules 또는 SBOM을 검사해야 합니다.
  • 이 템플릿은 무기화된 페이로드를 전송하지 않습니다. 탐지만을 위한 것이며 프로덕션 시스템에서 실행해도 안전합니다.
  • React Server Components를 사용하지 않는 애플리케이션(클라이언트 전용 React 앱)은 영향을 받지 않습니다.

참고 자료

  • React official advisory — react.dev
  • GitHub Security Advisory — GHSA-fv66-9v8q-g76r
  • NVD — CVE-2025-55182
  • Zscaler ThreatLabz — React2Shell
  • Google Cloud Blog — Threat Actors Exploit React2Shell
  • Palo Alto Unit 42 — CVE-2025-55182 Exploitation

면책 조항

이 템플릿은 승인된 보안 테스트 및 취약점 평가 용도로만 제공됩니다. 귀하가 소유하지 않거나 명시적인 서면 허가 없이 시스템에 대해 실행하는 경우 불법일 수 있습니다. 저자는 오용에 대한 책임을 지지 않습니다.