Der Kern des Problems liegt laut den Forschern in einer doppelten Auswertung eines Werts aus einer Theme-Vorschau-URL: Dieser werde “einmal von der Themes-API von WordPress.org und ein zweites Mal von fehlerhaften Methoden im JavaScript im Browser des Administrators” interpretiert. Dadurch kann ein Angreifer ein Theme auf einer Zielseite hinzufügen lassen, ohne dass der Administrator es bewusst installiert.
Entscheidend ist die zweite Stufe: Yibelo stellte fest, dass ein Theme auch im inaktiven Zustand während einer Customizer-Vorschau PHP ausführen kann. Ein Angriff beginnt also mit einem präparierten Link, der die Installation eines verwundbaren Themes aus dem Katalog anstößt. Lädt die Customizer-Vorschau anschließend den PHP-Code des inaktiven Themes, wird dieser auf dem Server ausgeführt.
Zur Demonstration nutzte pwn.ai ein konkretes verwundbares WordPress-Theme als zweites Glied der Kette, über das der PHP-Code des Angreifers zur Ausführung kam. Der vollständige technische Bericht des Forschers enthält einen kompletten Proof-of-Concept für serverseitige Codeausführung. Die zugrunde liegende Schwachstelle im Core ist dabei nicht an dieses eine Theme gebunden — sie lässt sich nutzen, um die Installation jedes anderen verwundbaren Themes aus dem WordPress-Katalog zu erzwingen.
Die möglichen Folgen reichen vom Verändern und Löschen von Dateien über den Zugriff auf Nutzerdaten bis zum Auslesen der “wp-config.php” mit Datenbank-Zugangsdaten und Authentifizierungsgeheimnissen. Auf dieser Basis könnten Angreifer eigene Administratorkonten anlegen oder schädliche Skripte einschleusen.
Bemerkenswert ist, wie wenig der Angreifer mitbringen muss: weder ein WordPress-Konto noch eine Installations-Nonce noch eigene Administratorrechte. Die einzige Voraussetzung bleibt der angemeldete Administrator, der den präparierten Link öffnet.
Das auf WordPress-Sicherheit spezialisierte Unternehmen Patchstack hat Click2Shell analysiert und betont, dass ausschließlich Administratoren die Kette auslösen können — Konten mit den Rollen Autor oder Redakteur besitzen nicht die nötige Berechtigung, Themes zu installieren. Zugleich warnt Patchstack, dass Angriffe über gezieltes Phishing oder über eine bereits vorhandene Cross-Site-Scripting-Lücke möglich sind, die den Browser des Administrators die Anfrage abschicken lässt.
WordPress hat die Lücke im Core mit Version 7.1.1 geschlossen, indem der Theme-Slug vor der Verwendung im jQuery-Selektor maskiert und der Selektor auf tatsächliche Theme-Karten beschränkt wird. Wer das Update nicht sofort einspielen kann, findet laut Patchstack in der Option “DISALLOW_FILE_MODS” einen Schutz: Auf Seiten mit aktivierter Einstellung lässt sich die Installation eines Themes oder eines schädlichen Plugins nicht erzwingen. Da technische Details und Exploit-Code bereits öffentlich sind, empfiehlt sich der Wechsel auf die aktuelle WordPress-Version dennoch nachdrücklich.
