
중요한 React2Shell 취약점을 시연하기 위한 개념 증명 도구
인가된 로컬 테스트 환경에서만 React2Shell 취약점(CVE-2025-55182 / CVE-2025-66478)을 시연하기 위한 개념 증명 도구입니다.
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 패키지에서 비롯되며, 이를 번들로 사용하는 모든 프레임워크에 영향을 미칩니다.
영향 없음: 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
확인 your 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(최고 심각도) 의 취약점을 시연하며, 이 취약점은 현재 국가 지원을 받는 적극적인 악용이 이루어지고 있습니다.
기억하세요: 이 도구는 패치가 시급한 이유를 보여줍니다. 이 지식을 사용하여 보안을 개선하고 시스템을 방어하되, 손상시키지 마십시오. 모든 종속성을 위에 나열된 패치된 버전으로 업데이트하십시오.
TAHA MOUNIR
| 구성 요소 | 영향을 받는 버전 | 패치된 버전 | 참고 |
|---|
| 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 and later | 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 패키지를 사용하는 경우 취약합니다. |