Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2026-64638-WordPress-Core-XSS2Shell — Template Nuclei para detecção não-intrusiva do XSS2Shell, um parser differential pré-autenticado no WordPress Core que permite injeção de elementos DOM na página de login, servindo de base para uma cadeia de XSS → RCE. | Kitploit
Tools/GitHubGitHub/renzi25031469/cve-2026-64638-wordpress-core-xss2shell
Vulnerability ScannersWeb Vulnerability ScannersVulnerability AnalysisWeb SecurityPenetration Testing
GitHubrenzi25031469/cve-2026-64638-wordpress-core-xss2shell

CVE-2026-64638-WordPress-Core-XSS2Shell

Template Nuclei para detecção não-intrusiva do XSS2Shell, um parser differential pré-autenticado no WordPress Core que permite injeção de elementos DOM na página de login, servindo de base para uma cadeia de XSS → RCE.

View Repository
351 month agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

CVE-2026-64638 — Nuclei Detection Template

Template Nuclei for non-intrusive detection of XSS2Shell, a pre-authenticated differential parser in WordPress Core that allows injection of DOM elements into the login page, serving as the basis for an XSS → RCE chain.

⚠️ This template only detects the sanitization flaw (marker reflection step in the HTML response). It does not run the full exploitation chain (DOM clobbering, JSONP/SOME, Application Password theft, or plugin upload). Strict use on assets under explicit authorization.

About the vulnerability

WordPress Core, when rendering the "user not registered" error message in wp-login.php, inserts the submitted username into HTML without consistent escaping between two distinct filters:

  • wp_strip_all_tags() (based on PHP's strip_tags()) only recognizes a tag if < is followed immediately by a letter — a space after < makes the filter treat the content as plain text.
  • wp_kses_post(), applied right after, uses its own tokenizer, which tolerates that space and reconstructs the string as a real HTML element (<area>, <div>, and <button> are on the allowlist).
  • The result is that an unauthenticated attacker can inject arbitrary DOM elements into the login page, which — combined with legacy handlers from the user-profile.js script, DOM clobbering of the ajaxurl variable, and JSONP from the REST API — allow JavaScript execution on the WordPress origin and, in a full chain, RCE against an administrator's account.

    Discovered and disclosed by pwn.ai. Fixed in WordPress 7.0.3 (backport down to the 4.7 branch).

    • CVE: CVE-2026-64638
    • CVSS: 9.8 (Critical) — AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
    • Affected: All maintained WordPress Core versions before 7.0.3
    • Fixed in: WordPress 7.0.3 (August 6, 2026)

    What the template checks

    The template sends a POST request to /wp-login.php with a payload in the log field containing:

    root@kitploit:~
    < area id=xss2shell-marker href=/x>< div id=xss2shell-div>
    

    If WordPress is vulnerable, wp_kses_post() reconstructs these strings as real HTML elements in the response. The template uses two regex matchers (and condition) to confirm that both tags appear reconstructed — reducing false positives from WAFs that partially reflect input.

    Usage

    root@kitploit:~
    # Validate template syntax
    nuclei -t CVE-2026-64638.yaml -validate
    
    # Run against a single target
    nuclei -t CVE-2026-64638.yaml -u https://target.com
    
    # Run against a list of targets
    nuclei -t CVE-2026-64638.yaml -l targets.txt
    
    # Debug (see full request/response)
    nuclei -t CVE-2026-64638.yaml -u https://target.com -debug-req -debug-resp
    

    Interpreting the result

    ResultMeaning
    Positive matchInjected tags reflected as real HTML → differential parser present → vulnerable target (unpatched)
    No matchPayload escaped or removed → patched target (WordPress ≥ 7.0.3) or protected by a WAF/proxy that normalizes spaces inside tags

    Remediation

    Upgrade to WordPress 7.0.3 or later. The patch was backported to all maintained branches starting from 4.7.

    References

    • pwn.ai — XSS2Shell: WordPress Preauth XSS to RCE Chain (CVE-2026-64638)
    • WordPress 7.0.3 Release Notes
    • Bypassing CSP using WordPress by abusing Same Origin Method Execution (base research on SOME, Paulos Yibelo, 2022)

    Legal disclaimer

    This template is provided for security research and authorized penetration testing purposes. Use against systems without explicit authorization is illegal. The author is not responsible for misuse.

    Author

    Renzi

    Download Tool