
Technische Analyse und defensive Abschwächung für eine WordPress-Core-Pre-Auth-XSS-zu-RCE-Kette, einschließlich Sanitizer-Bypass, DOM-Clobbering, JSONP-Missbrauch, Erkennungssignaturen und Patchen.
Technische Analyse und defensive Mitigationsmatrix für den Vektor CVE-2026-64638 (XSS2Shell), eine kritische Inkonsistenz im Parsing des WordPress-Core-Authentifizierungsbildschirms, die es ermöglicht, ein reflektiertes Cross-Site-Scripting (XSS) vor der Authentifizierung mit Browser-Primitiven zu verketten, bis hin zur Remote-Code-Ausführung (RCE).
Das tatsächliche Risiko dieses Vektors liegt in der Kombination mehrerer legitimer Gadgets, die im Kern der Anwendung integriert sind. Was zunächst als Befund mit mittlerem Impact (reflektiertes XSS) eingestuft wird, eskaliert über die folgenden technischen Glieder bis zur vollständigen Kompromittierung des Servers:
[ Pre-Auth-Anfrage ] ➔ [ Filter-Inkonsistenz ] ➔ [ DOM Clobbering ] ➔ [ JSONP-REST-API-Callback ] ➔ [ Admin-Interaktion ] ➔ [ App-Passwort-Generierung ] ➔ [ RCE per Plugin-Upload ]
Der Einstiegspunkt nutzt eine logische Diskrepanz zwischen zwei internen Funktionen zur Eingabebereinigung auf dem Login-Bildschirm (wp-login.php). Während die eine bestimmte HTML-Area-Tags ignoriert, repariert die andere sie, sodass ein bösartiges Payload im Benutzernamen-Parameter direkt im DOM der Login-Fehlerantwort reflektiert wird.
WordPress lädt standardmäßig Benutzerprofil-Skripte in die Login-Oberfläche (erforderlich für die Passwort-Reset-Abläufe). Die HTML-Injection verändert den globalen Namensraum (window.ajaxurl) und leitet legitime Aufrufe an einen vom Angreifer kontrollierten Endpunkt um.
Durch Verwendung spezifischer Parameter der internen REST API (_jsonp, _method=GET, _envelope=1) interpretiert der Browser die Antworten als application/javascript-Inhalt, was es ermöglicht, den Aufruf beliebiger Funktionen zu erzwingen und dabei strikte, auf Nonces basierende Content-Security-Policy-(CSP)-Direktiven zu umgehen.
Wenn ein Administrator mit geöffneter Sitzung mit der betroffenen Origin interagiert, nutzt das Payload dessen Privilegien, um im Hintergrund automatisiert ein Application Password zu autorisieren. Mit diesen sekundären API-Zugangsdaten wird ein bösartiges Plugin hochgeladen, das eine interaktive Shell in der PHP-Ausführungsumgebung gewährt.
Der Sicherheitspatch wurde nachträglich in allen aktiven Branches des WordPress-Kerns ausgerollt. Überprüfen Sie die exakte installierte Nebenversion auf Ihren Servern.
Aktualisieren Sie den WordPress-Core unverzüglich auf die zu Ihrem Branch passende Version. Verlassen Sie sich in Unternehmensumgebungen nicht ausschließlich auf das System für automatische Updates.
# Forzar actualización de Core vía WP-CLI
wp core update --version=7.0.3 --force
Falls eine sofortige Aktualisierung der Umgebung nicht möglich ist, wenden Sie Defense-in-Depth-Kontrollen an, um die oberen Glieder der Exploit-Kette zu durchbrechen:
define('DISALLOW_FILE_MODS', true); in Ihre wp-config.php-Datei ein, um die Installation oder Änderung von Code über die Weboberfläche einzuschränken.wp-login.php ausschließlich auf Unternehmens-IP-Bereiche oder vertrauenswürdige VPNs.Um zu prüfen, ob die Infrastruktur vor der Anwendung des Patches exponiert oder angegriffen wurde, prüfen Sie die Access-Log-Dateien und das Dateisystem anhand der folgenden Muster:
# Buscar intentos de inyección de caracteres HTML o payloads en el login
grep -E "wp-login\.php.*user_login=.*[<>]" /var/log/nginx/access.log
# Buscar llamadas a la REST API que fuercen parámetros de callbacks JSONP
grep -E "wp-json.*_jsonp=" /var/log/nginx/access.log
# Auditar llamadas inusuales de subida de complementos por parte de IPs desconocidas
grep "POST /wp-admin/update.php?action=upload-plugin" /var/log/nginx/access.log
.php-Dateien im Pfad /wp-content/plugins/ vorhanden sind, die zu nicht erkannten oder inaktiven Plugins gehören.| Branch | Letzte verwundbare Version | Korrigierte Version (Patch) | Support-Status |
|---|
| 7.0 | 7.0.2 | 7.0.3 | Wöchentlicher Hauptbranch |
| 6.9 | 6.9.5 | 6.9.6 | Sicherheits-Backport |
| 6.8 | 6.8.6 | 6.8.7 | Sicherheits-Backport |
| 6.7 | 6.7.5 | 6.7.6 | Sicherheits-Backport |
| < 4.7 | Alle | Nicht unterstützt | 🚨 Kritisches Risiko / End of Life |