
Nuclei-Template zur nicht-intrusiven Erkennung von XSS2Shell, einem vorauthentifizierten Differential-Parser im WordPress Core, der die Injektion von DOM-Elementen in die Login-Seite ermöglicht und als Grundlage für eine XSS → RCE-Kette dient.
Nuclei-Vorlage zur nicht-intrusiven Erkennung von XSS2Shell, einer ohne Authentifizierung ausnutzbaren Differential-Parser-Schwachstelle im WordPress-Core, die das Einschleusen von DOM-Elementen in die Login-Seite ermöglicht und als Grundlage für eine XSS-zu-RCE-Kette dient.
⚠️ Diese Vorlage erkennt nur den Sanitisierungsfehler (Schritt der Marker-Reflexion in der HTML-Antwort). Sie führt nicht die vollständige Exploit-Kette aus (DOM-Clobbering, JSONP/SOME, Diebstahl von Application-Passwörtern oder Plugin-Upload). Strikte Nutzung nur für Assets mit ausdrücklicher Genehmigung.
Wenn der WordPress-Core die Fehlermeldung „Benutzer nicht registriert“ in wp-login.php rendert, fügt er den übermittelten Benutzernamen ohne konsistentes Escaping zwischen zwei unterschiedlichen Filtern in HTML ein:
wp_strip_all_tags() (basiert auf dem strip_tags() von PHP) erkennt ein Tag nur, wenn auf < unmittelbar ein Buchstabe folgt – ein Leerzeichen nach < bewirkt, dass der Filter den Inhalt als reinen Text behandelt.wp_kses_post(), direkt danach angewendet, verwendet einen eigenen Tokenizer, der dieses Leerzeichen toleriert und die Zeichenkette als echtes HTML-Element rekonstruiert (<area>, <div> und <button> stehen auf der Allowlist).Das Ergebnis ist, dass ein nicht authentifizierter Angreifer beliebige DOM-Elemente in die Login-Seite injizieren kann, die – kombiniert mit Legacy-Handlern des Skripts user-profile.js, DOM-Clobbering der Variablen ajaxurl und JSONP der REST-API – die Ausführung von JavaScript im Ursprung von WordPress und in vollständiger Kette RCE gegen das Konto eines Administrators ermöglichen.
Entdeckt und veröffentlicht von pwn.ai. Behoben in WordPress 7.0.3 (Backport bis zum Branch 4.7).
Die Vorlage sendet eine POST-Anfrage an /wp-login.php mit einem Payload im Feld log, der Folgendes enthält:
< area id=xss2shell-marker href=/x>< div id=xss2shell-div>
Wenn WordPress verwundbar ist, rekonstruiert wp_kses_post() diese Zeichenketten als echte HTML-Elemente in der Antwort. Die Vorlage verwendet zwei Matcher im regex-Modus (Bedingung and), um zu bestätigen, dass beide Tags rekonstruiert erscheinen – wodurch Fehlalarme von WAFs reduziert werden, die Eingaben teilweise reflektieren.
# Validieren der Vorlagensyntax
nuclei -t CVE-2026-64638.yaml -validate
# Gegen ein einzelnes Ziel ausführen
nuclei -t CVE-2026-64638.yaml -u https://target.com
# Gegen eine Liste von Zielen ausführen
nuclei -t CVE-2026-64638.yaml -l targets.txt
# Debug (vollständige Request/Response anzeigen)
nuclei -t CVE-2026-64638.yaml -u https://target.com -debug-req -debug-resp
| Ergebnis | Bedeutung |
|---|---|
| Positiver Match | Die injizierten Tags wurden als echtes HTML reflektiert → Differential-Parser vorhanden → Ziel verwundbar (nicht gepatcht) |
| Kein Match | Der Payload wurde escapt oder entfernt → Ziel gepatcht (WordPress ≥ 7.0.3) oder durch WAF/Proxy geschützt, der Leerzeichen innerhalb von Tags normalisiert |
Auf WordPress 7.0.3 oder höher aktualisieren. Der Patch wurde auf alle gepflegten Branches ab 4.7 zurückportiert.
Diese Vorlage wird für Zwecke der Sicherheitsforschung und autorisierter Penetrationstests bereitgestellt. Die Verwendung gegen Systeme ohne ausdrückliche Genehmigung ist illegal. Der Autor übernimmt keine Verantwortung für Missbrauch.
Renzi