Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
wpforms-xss-fix-bypass — WPForms <= 2.0.2.1 में अनप्रमाणित परावर्तित XSS — attribute-name स्थिति पर CVE-2026-88996 Smart Tag escaping का बायपास | Kitploit
उपकरण/GitHubGitHub/dorkerdevil/wpforms-xss-fix-bypass
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंग
GitHubdorkerdevil/wpforms-xss-fix-bypass

wpforms-xss-fix-bypass

WPForms <= 2.0.2.1 में अनप्रमाणित परावर्तित XSS — attribute-name स्थिति पर CVE-2026-88996 Smart Tag escaping का बायपास

रिपॉजिटरी देखें
131 महीना पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

WPForms ≤ 2.0.2.1 — CVE-2026-88996 फ़िक्स का बायपास (अप्रमाणित परावर्तित XSS)

प्रभावित: WPForms – AI Form Builder for WordPress (मुफ़्त/लाइट), संस्करण 2.0.2.1 — प्रकटीकरण के समय वर्तमान नवीनतम (वही संस्करण जो CVE-2026-88996 के फ़िक्स को समाहित करता है)। Pro संस्करण Smart Tag रेंडरर को साझा करता है।

वर्ग: अप्रमाणित परावर्तित क्रॉस-साइट स्क्रिप्टिंग (CWE-79), सत्यापित JavaScript निष्पादन के साथ, CVE-2026-88996 / GHSA-8j5g-9vmv-9mmw के अपूर्ण फ़िक्स के माध्यम से।

खोजा गया: 2026-09-27 ·

Patchstack को रिपोर्ट किया गया: 2026-09-27 ·

अस्वीकृत: 2026-09-28 ("यह समस्या केवल तब प्रकट होती है जब साइट प्रशासक ने एक नंगा Smart Tag लिखा हो, जहाँ HTML एट्रिब्यूट नाम होना चाहिए... यह न तो कोई डिफ़ॉल्ट सेटअप है और न ही ऐसा पैटर्न जिसे कोई वास्तविक रूप से लिखेगा" — तकनीकी वैधता पर विवाद नहीं) ·

सार्वजनिक: 2026-09-28।

सारांश

CVE-2026-93485-परिवार के परावर्तित XSS के लिए 2.0.2.1 फ़िक्स उन Smart Tag मानों को एस्केप करता है जो मार्कअप में प्रतिस्थापित किए जाते हैं (SmartTags::escape_for_attribute() उद्धरण चिह्नों और व्हाइटस्पेस को एन्कोड करता है)। यह तब प्रभावी होता है जब प्रतिस्थापित मान किसी उद्धृत एट्रिब्यूट मान के भीतर आता है। जब कोई फ़ॉर्म लेखक Confirmation संदेश में एट्रिब्यूट-नाम स्थिति पर एक नंगा Smart Tag रखता है — उदाहरण के लिए:

<input {field_id="3"}>

onmouseover=alert(1) जैसे बिना उद्धरण और बिना व्हाइटस्पेस वाले सबमिट किए गए फ़ील्ड मान को शब्दशः डाला जाता है और यह एक नया, सक्रिय इवेंट-हैंडलर एट्रिब्यूट बन जाता है। एस्केपिंग कभी भी = को एन्कोड नहीं करती, और एट्रिब्यूट नामों के लिए न तो उद्धरण और न ही व्हाइटस्पेस आवश्यक है। फिर अनाम सबमिटर को लौटाया गया पुष्टिकरण इसमें शामिल होता है:

<input onmouseover=alert(1)>

admin-ajax.php (action=wpforms_submit, wp_ajax_nopriv_*) पर अनाम सबमिशन लॉग-आउट उपयोगकर्ताओं के लिए डिज़ाइन द्वारा nonce-रहित हैं, इसलिए यह पूरी तरह से अनप्रमाणित reflected XSS है। मनमाना JavaScript onmouseover=eval(String.fromCharCode(...)) के माध्यम से single-token बाधा के भीतर निष्पादित होता है।

वह डेल्टा जो सिद्ध करता है कि यह एक फिक्स गैप है

उसी फ़ॉर्म पर, parent-CVE payload आकार — उद्धृत मान के अंदर से उद्धरण-तोड़ना, जैसे x" onfocus=alert(1) autofocus y=" — प्रत्येक स्थिति में सही ढंग से escaped है (&quot; / &#32; एन्कोडिंग देखी गई)। 2.0.2.1 escaping हर जगह काम करती है सिवाय attribute-name placement के। यह उसी substitution sink का अपूर्ण फिक्स है, न कि एक अलग फीचर गैप।

पुनरुत्पादन

# 1. WordPress + WPForms lite 2.0.2.1, create a form with a single-line text field (id 3)
# 2. Set the form's Confirmation message to:
#      A: <input value="{field_id="3"}">  B: <input {field_id="3"}>
# 3. Run the PoC (stdlib-only Python 3):
python3 poc.py --url http://target.example/form-page/

अपेक्षित आउटपुट:

[+] field 3 reflects into the confirmation message
[payload (bypass position)] occurrences: LIVE=1 ESCAPED/INERT=2
    LIVE  -> ...<input onmouseover=alert(poc93485)>...
[control] parent-CVE payload escaped everywhere: YES (fix works at value positions)
=== VERDICT: VULNERABLE — payload reaches attribute-NAME position unescaped ===

poc.py स्वतः ही फ़ॉर्म, फ़ील्ड्स और reflecting फ़ील्ड का पता लगाता है; अनाम रूप से सबमिट करता है; और प्रत्येक occurrence को LIVE (attribute-name injection) बनाम ESCAPED (quoted-value, parent-CVE स्वरूप) के रूप में वर्गीकृत करता है। Exit code 0 = vulnerable।

पूर्व-शर्तें (ईमानदारी से बताई गई)

फ़ॉर्म का admin-authored Confirmation संदेश में attribute-name स्थिति पर markup के अंदर एक bare input-reflecting Smart Tag होना चाहिए। Patchstack के शोधकर्ताओं ने इसे एक अवास्तविक authoring पैटर्न के रूप में आंका; फिर भी यह एक प्रलेखित feature स्थिति है, escaping ठीक इसलिए मौजूद है ताकि markup-context प्रतिस्थापन सुरक्षित हो, और लेखक को कोई त्रुटि नहीं मिलती — केवल मौन injection।

सुझाया गया समाधान

markup-context escaping में = को encode करें, या confirmation markup को संदर्भानुसार parse करें और Smart Tag प्रतिस्थापन केवल text और quoted-attribute-value स्थितियों में अनुमत करें।

फ़ाइलें

  • poc.py — स्व-निहित PoC (कोई server-side चरण नहीं, कोई dependencies नहीं)
  • poc.sh — curl-आधारित न्यूनतम variant

अस्वीकरण

केवल अधिकृत परीक्षण और शैक्षिक उद्देश्यों के लिए। रिपोर्टर इसे तब प्रकाशित करता है जब एक coordinated-submission प्रयास अस्वीकार कर दिया गया था; तकनीकी निष्कर्ष पर विवाद नहीं किया गया।

लेखक

Ashish Kunwar (@D0rkerdevil)

टूल डाउनलोड करें