WordPress hat eine neue Sicherheitslücke geschlossen, die bereits vor der Anmeldung in der Login-Ansicht ansetzt. Der Kern der Gefahr ist WordPress Pre-Auth XSS: Eine speziell gestaltete Zeichenkette kann auf der fehlgeschlagenen Login-Seite schädliches JavaScript im Browser des Besuchers auslösen. Betroffen ist grundsätzlich jede WordPress-Version, die auf die verwundbare Code-Pfad-Logik trifft.
Wichtig: Die reinen XSS-Auswirkungen reichen im beschriebenen Szenario zwar nicht automatisch zum Server-Impact. Entscheidend ist jedoch, dass die Forscher eine Angriffskette demonstriert haben, die unter bestimmten Bedingungen bis zu PHP-Code-Ausführung führen kann. WordPress empfiehlt daher ein sofortiges Update.
Welche Schwachstelle steckt dahinter?
Die Lücke wurde als CVE-2026-64638 eingeordnet und erhielt einen CVSS-Score von 8,9, also eine hohe bis kritische Schwere. Sie betrifft die Verarbeitung eines nicht erfolgreichen Benutzernamens auf der Login-Seite. Da die Schwachstelle vor der Authentifizierung greift, benötigen Angreifer keine besonderen Berechtigungen.
Die Attacke beginnt damit, dass ein präparierter Username den Weg auf die Fehlerseite nach einem fehlgeschlagenen Login findet. Der Browser führt anschließend den darin enthaltenen, steuerbaren JavaScript-Code aus – und zwar ohne dass der Besucher auf dieser Seite noch weitere Aktionen ausführen muss.
Warum ist die Kette besonders gefährlich?
Die gefährliche Weiterleitung zu PHP-Codeausführung ist nicht nur „einfach XSS“. Sie setzt zusätzliche Bedingungen voraus: Ein Opfer muss bereits als Administrator bei WordPress eingeloggt sein und anschließend eine attacker-kontrollierte Seite mit dem XSS ausgelöst haben.
In der Demonstration reichte bereits ein einzelner Klick, um den Ablauf anzustoßen. Die Forschenden beschreiben zudem mehrere mögliche Pfade, wie sich die XSS-Folgearbeiten in Richtung Codeausführung „chaining“ können.
Die Varianten umfassen dabei unter anderem Wege, bei denen eine Plugin-Installation oder das Hochladen eines beliebigen ZIP genutzt werden kann. Der zentrale Punkt: Die Schwachstelle kann in bestehende Logik und Skripte von WordPress eingreifen, die auf der Login-Seite ohnehin geladen werden.
So funktioniert der Einstieg in die XSS
Laut den Forschern startet die Sicherheitslücke dort, wie WordPress den Benutzernamen aus einem fehlgeschlagenen Login verarbeitet. Der Wert passiert dabei mehrere Filterfunktionen, darunter sanitize_user() und wp_strip_all_tags(). Diese Schritte bauen auf PHP-interner Tag-Parsing-Logik auf.
Eine Besonderheit dabei: Bestimmte tag-ähnliche Zeichenfolgen können je nach Gestaltung trotz Parserlogik als Text „durchrutschen“. Später wird der Wert durch eine weitere Verarbeitung geführt, wp_kses_post(). In der Kombination dieser Schritte kann die Eingabe im Ergebnis dazu führen, dass im Seiten-Output attacker-kontrollierte, live DOM-Elemente entstehen.
Vom Browser in Richtung WordPress-JavaScript
Die angreifenden DOM-Elemente spielen anschließend mit WordPress-eigener Frontend-Logik zusammen. Insbesondere wird auf der Login-Seite auch ein Profil-/Profilmanagementskript geladen (user-profile.js), das normalerweise in anderen Kontexten Profileinstellungen unterstützt. Weil die Loginseite zudem Passwort-Reset-Funktionen abhandelt, taucht diese Scriptlogik dort ebenfalls auf.
Die Forschenden zeigen, dass einige erwartete Eingabeelemente auf dieser Seite fehlen. Dadurch können JavaScript-Checks „durchfallen“, weil Werte zu undefined werden. Gleichzeitig kann die sonst vorgesehene ajaxurl-Variable durch injizierte DOM-Strukturen überschrieben werden.
Dadurch wird WordPress-eigenes JavaScript in Richtung einer REST-Anfrage gelenkt, die vom Angreifer ausgewählt wurde – und diese Umleitung öffnet den Weg zu weiteren Schritten.
JSONP, Same-Origin und die Rolle von REST
Ein entscheidender Baustein der beschriebenen Kette ist die Nutzung der REST JSONP-Funktion von WordPress. Damit lässt sich eine REST-Antwort so aufbereiten, dass am Ende Code im Origin-Kontext ausgeführt werden kann. In Deployments, in denen anonyme REST-Zugriffe HTTP 401 zurückgeben, kann ein Parameter wie _envelope=1 helfen, den Response so zu „verpacken“, dass die Browserseite die Antwort dennoch als Script weiterverarbeiten kann.
Zusätzlich berichten die Forschenden, dass eine Content-Security-Policy mit Nonce sowie strict-dynamic den gezeigten Pfad in ihren Tests nicht zuverlässig blockiert hat.
Vom XSS zu PHP-Code: Was nach der Browserphase passiert
Die vollständige Server-Auswirkung lässt sich nicht einfach als „XSS = RCE“ zusammenfassen. In der Darstellung baut der Ablauf auf bestehenden Ideen auf, die in früheren Forschungsarbeiten im Kontext von SOME (Same Origin Method Execution) beschrieben wurden.
In einer demonstrierten Route wurde die XSS genutzt, um in einer Sitzung eines eingeloggenen Administrators eine Funktion rund um Application Passwords anzusprechen. WordPress erstellt dabei eine API-ähnliche Zugangskonfiguration und leitet sie auf eine vom Angreifer gewählte HTTPS-Zieladresse weiter.
Die Zugangsdaten sind widerrufbar und müssen nicht den Hauptpasswort-Hash ersetzen oder das Primary-Passwort stehlen. Mit diesen Anmeldedaten kann dann eine weitere Aktion erfolgen: Der Angreifer veranlasst die Veröffentlichung einer Seite, die im Kontext der angemeldeten Admin-Sitzung dasselbe-origin JavaScript ausführt. Anschließend soll ein vom Angreifer bereitgestelltes ZIP hochgeladen und verarbeitet werden, worüber sich am Ende PHP im Zielkontext anstoßen lässt.
Erwähnenswert: In der Beschreibung muss das Plugin in dieser Darstellung nicht zwingend aktiviert werden, um den beschriebenen Effekt auszulösen.
Wie schnell mussten Betreiber reagieren?
WordPress hat die Sicherheitslücke am 6. August gepatcht. Der Fix ist in WordPress 7.0.3 enthalten. Zusätzlich wurden Änderungen in die 4.7-Codebasis zurückportiert. Betreiber sollten daher nicht nur „irgendwann“ aktualisieren, sondern die Sicherheitsversionen zeitnah einspielen.
Für ältere Versionen, die vor 4.7 liegen, gilt: Sie bleiben betroffen und fallen außerhalb des aktuellen Backport-Fensters. Wer automatische Hintergrund-Updates unterstützt, sollte die Security Release typischerweise automatisch erhalten.
Einordnung: Was WordPress selbst vorsichtiger bewertet
In der offiziellen Einschätzung nimmt WordPress eine differenziertere Betrachtung der realen Ausnutzbarkeit vor. Während die XSS-Komponente vor der Authentifizierung ohne spezielle Angreiferrechte stattfindet, erfordert die Eskalation zu RCE (Remote Code Execution) zusätzliche Faktoren außerhalb der alleinigen Kontrolle des Angreifers.
Dazu gehören vor allem erfolgreiche Social-Engineering-Schritte und die explizite Interaktion des Opfers. Genau deshalb sollte man die Schwachstelle nicht kleinreden: Auch wenn nicht jede Ausführung sofort zu Servercode führt, besteht dennoch ein akutes Risiko, insbesondere in Umgebungen mit Administrator-Sitzungen und realen Nutzern.
Was Betreiber jetzt konkret tun sollten
Die wichtigste Maßnahme ist klar: Update sofort. Prüfen Sie, welche WordPress-Version im Betrieb läuft, und installieren Sie die enthaltenen Sicherheitspatches. Wenn Sie automatische Updates nutzen, verifizieren Sie, dass die Security Release auch wirklich übernommen wurde.
Darüber hinaus empfehlen die Forschenden, vorhandene Härtungsmaßnahmen nicht als vollständigen Ersatz für das Update zu betrachten. Selbst wenn Content-Security-Policy und ähnliche Mechanismen bestimmte Klassen von Angriffen erschweren, bleibt die zugrunde liegende WordPress Pre-Auth XSS weiterhin ein ernstes Einfallstor.
Gibt es Hinweise auf Ausnutzung in freier Wildbahn?
Zum Stand 7. August berichtet die WordPress-Avisory nicht über bekannte Ausnutzungen „in the wild“. Das bedeutet allerdings nicht, dass das Risiko sinkt – es heißt vor allem, dass die Lage zum damaligen Zeitpunkt noch nicht als aktiv beobachtet gemeldet wurde.
In jedem Fall sollten Betreiber die Zeit bis zur Aktualisierung als kritisch betrachten, denn die Lücke ist so beschrieben, dass sie ohne Authentifizierung starten kann.
Fazit
WordPress Pre-Auth XSS ist ein ernstzunehmendes Sicherheitsproblem, das in der Login-Ansicht ansetzt und im beschriebenen Szenario unter zusätzlichen Bedingungen bis zu PHP-Code-Ausführung führen kann. WordPress hat den Fehler behoben (u. a. in 7.0.3), und die klare Empfehlung lautet: patchen Sie so schnell wie möglich.
Wenn Sie WordPress im Produktivbetrieb betreiben, ist jetzt der richtige Zeitpunkt für Versioncheck, Update und eine kurze Sicherheitskontrolle Ihrer Prozesse rund um Admin-Zugriffe.
Quelle: https://thehackernews.com/2026/08/new-wordpress-pre-auth-xss-could-lead.html
