
React2Shell 취약점 (CVE-2025-55182 / CVE-2025-66478)
인증된 로컬 테스트 환경에서만 중요한 React2Shell 취약점(CVE-2025-55182 / CVE-2025-66478)을 시연하기 위한 개념 증명 도구입니다.
이 취약점(CVSS 10.0)은 정교한 위협 행위자에 의해 활발히 악용되고 있습니다. Amazon Threat Intelligence에 따르면 Earth Lamia 및 Jackpot Panda를 포함한 여러 중국 연계 국가 지원 그룹이 공개 직후 몇 시간 내에 공개 익스플로잇을 무기화하기 시작했습니다. 미국 사이버보안 및 인프라 보안국(CISA)은 이를 알려진 악용 취약점(KEV) 카탈로그에 추가했습니다.
CVE-2025-55182(React2Shell)는 React Server Components(RSC) 'Flight' 프로토콜의 중요한 사전 인증 원격 코드 실행(RCE) 취약점입니다. 별도의 식별자 CVE-2025-66478은 Next.js에 대해 할당되었지만 CVE-2025-55182의 중복으로 기각되었으며, 둘 다 동일한 근본 원인을 공유합니다.
chmod +x pwn-nextjs.sh
./pwn-nextjs.sh [TARGET_URL] [COMMAND]
# Target specific URL
./pwn-nextjs.sh https://vulnerable-app.example.com "whoami"
root
취약점은 특정 React 패키지에서 비롯되며, 이를 번들로 포함하는 모든 프레임워크에 영향을 미칩니다.
| 구성 요소 | 영향을 받는 버전 | 패치된 버전 | 비고 |
|---|---|---|---|
| React 패키지 ( react-server-dom-webpack, -parcel, -turbopack) | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1 | 업스트림 결함의 원천. |
| Next.js (App Router) | 15.x, 16.x, 14.3.0-canary.77 및 이후 | 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 | 주요 영향을 받는 프레임워크. |
| 기타 프레임워크 | React Router, Waku, RedwoodJS, Parcel (@parcel/rsc), Vite RSC Plugin | 패치된 React 패키지(>19.0.1, 19.1.2, 19.2.1)를 사용하는 버전으로 업데이트하십시오. | 영향을 받는 React 패키지를 사용하는 경우 취약함. |
영향 없음: Next.js 13.x, Next.js 14.x 안정 버전, Pages Router 애플리케이션 및 Edge Runtime은 영향을 받지 않습니다.
RSC Flight 프로토콜은 클라이언트-서버 통신을 위해 데이터를 직렬화합니다. 취약점은 서버의 역직렬화 로직에 있으며, 들어오는 페이로드에서 객체 속성을 안전하지 않게 확장하여 적절한 검증 없이 확장합니다. 이를 통해 공격자는 __proto__ 또는 constructor와 같은 악의적인 키를 요청에 주입하여 프로토타입 오염을 유발할 수 있습니다.
프로토타입 체인이 오염되면 서버는 공격자의 영향을 받는 실행 경로를 따르게 됩니다. 이를 연결하여 서버 권한으로 임의의 JavaScript 코드를 실행할 수 있어 완전한 원격 코드 실행(RCE)이 가능합니다.
보안 연구원들은 다음과 같은 성공적인 익스플로잇을 관찰했습니다:
.aws/credentials)을 식별하고 유출하려는 시도.패치는 필수이며 취약점을 완전히 제거하는 유일한 방법입니다. 취약한 코드 경로를 비활성화하는 구성 설정은 없습니다.
# For Next.js users, upgrade to the latest patched version in your release line.
# Example: If you are on Next.js 15.5.x:
npm install [email protected]
# Also ensure React dependencies are updated:
npm install react@latest react-dom@latest
확인: package-lock.json 또는 yarn.lock 파일에 패치된 react-server-dom-* 패키지 버전(19.0.1, 19.1.2 또는 19.2.1)이 반영되어 있는지 확인하십시오.
패치하는 동안 웹 애플리케이션 방화벽(WAF) 규칙을 배포하여 익스플로잇 시도를 차단하십시오:
AWSManagedRulesKnownBadInputsRuleSet(v1.24+)에는 이 CVE에 대한 규칙이 포함되어 있습니다.cve-canary 규칙을 사용할 수 있습니다.참고: WAF 규칙은 일시적이고 불완전한 완화 조치입니다. 패치의 필요성을 대체하지 않습니다.
다음과 같은 익스플로잇 시도의 징후가 있는지 로그를 검토하십시오:
next-action 또는 rsc-action-id 헤더가 포함된 POST 요청. $@ 또는 "status":"resolved_model"과 같은 패턴이 포함된 요청 본문.whoami, id, uname), /etc/passwd 읽기, 또는 /tmp/에 파일 쓰기(예: pwned.txt).이 도구는 CVSS 점수 10.0(최대 심각도) 의 취약점을 시연하며, 이는 활발한 국가 지원 익스플로잇의 대상이 되고 있습니다.
기억하세요: 이 도구는 패치가 시급한 이유를 보여줍니다. 이 지식을 보안을 개선하고 시스템을 방어하는 데 사용하십시오. 위에 나열된 패치된 버전으로 모든 종속성을 업데이트하십시오.