
REST API 라우트 혼동(route-confusion)과 SQL 인젝션을 활용한 WordPress 코어 익스플로잇 체인으로, 인증되지 않은 RCE(원격 코드 실행), 권한 상승, 그리고 전체 서버 장악을 달성합니다.
WP2Shell은 WordPress Core 소스 코드의 심각한 취약점 체인(Exploit Chain)으로, 원격 공격자가 인증 없이(Unauthenticated Remote Attacker) 서버를 완전히 장악할 수 있게 합니다 (Full Server Takeover / RCE).
이 익스플로잇 체인은 두 가지 보안 취약점을 결합합니다:
WP_Query): WP_Query의 author__not_in 매개변수에 대한 입력 필터링(Sanitization) 부재로 인해 SQL Injection이 발생합니다.이 두 취약점을 연쇄적으로 결합하면 공격자는 /wp-json/batch/v1로 특수하게 조작된 HTTP 요청을 보내 인증 메커니즘을 우회하고 SQLi를 활성화하여 권한을 상승시키고, 셸을 생성하며 원격으로 임의 코드를 실행할 수 있습니다 (RCE).
| 속성 | 세부 정보 |
|---|---|
| 익스플로잇 체인 이름 (Chain Name) | WP2Shell |
| CVE IDs | CVE-2026-63030 & CVE-2026-60137 |
| 심각도 (Severity) | Critical (CVSS v3.1: 9.8 / 10.0) |
| 공격 경로 (Attack Vector) | Network (Unauthenticated Remote) |
| 영향받는 버전 (Affected Versions) | • 전체 RCE 체인: WordPress 6.9.0 - 6.9.4 & 7.0.0 - 7.0.1• SQL Injection 전용: WordPress 6.8.0 - 6.8.5 |
| 패치된 버전 (Patched Versions) | WordPress 6.8.6, 6.9.5, 7.0.2 |
실제 재현 및 익스플로잇 과정 전체를 기록한 영상은 Google Drive에 저장되어 있습니다:
🔗 PoC 영상 보기 / 다운로드 링크: Google Drive - WP2Shell PoC 데모 영상
전체 기술 분석 흐름, PoC 재현 단계 및 소스 코드 설명은 Notion에 저장되어 있습니다:
🔗 Notion 문서 링크: WP2Shell CVE PoC 흐름 (Notion Writeup)
flowchart TD
A["[Attacker] Unauthenticated Remote Request"] --> B["REST API Batch Endpoint (/wp-json/batch/v1)"]
B --> C["CVE-2026-63030: Batch Route Confusion\n(Bypass Route Validation & Access Control)"]
C --> D["CVE-2026-60137: SQL Injection\n(Unsanitized 'author__not_in' in WP_Query)"]
D --> E["Database Manipulation / Privilege Escalation\n(Admin session / User creation)"]
E --> F["Web Shell Upload / Execution"]
F --> G["💥 Full Server Takeover (RCE)"]
/wp-json/batch/v1 엔드포인트로 향하는 요청을 임시로 차단하거나 엄격히 통제하세요./wp-json/batch/v1로 전송된 비정상적인 요청을 검사하세요.wp-content/uploads/ 및 wp-content/plugins/ 디렉터리를 스캔하세요.[!WARNING] 본 문서와 PoC 소스 코드는 보안 연구, 교육 및 시스템 방어 목적으로만 제공됩니다. 작성자는 이 저장소의 정보나 도구를 법적 권한이 없는 시스템을 공격하는 데 불법적으로 사용하는 행위에 대해 어떠한 책임도 지지 않습니다.