WordPress hat eine kaum bekannte interne Funktion des Content-Management-Systems (CMS) benutzt, um darüberein Zwangsupdate für ein beliebtes WordPress-Plug-in zu verteilen. Das betrifft WordPress-Websites, welche das Plug-in Loginizer benutzen. Diese Installationen haben auch ohne Zustimmung der Betreiber bzw. Admins die neue Version 1.6.4 erhalten.

Die Erweiterung Loginizer ist mit mehr als einer Million Installationen eines der am weitesten verbreiteten WordPress-PlugIns. Es stellt zusätzliche Sicherheitsfunktionen für die Anmeldeseite bereit, mit denen man unter anderem IP-Adressen per Blacklist oder Whitelist verwalten oder eine Zwei-Faktor-Authentifizierung bereitstellen kann.

Wie Angriffe funktionierten

Die jetzt per Zwangsupdate geschlossene Sicherheitslücke wurde vom Forscher Slavco Mihajloski entdeckt. Das Problem steckte in einer Funktion, die eigentlich vor Brute-Force-Angriffen schützen soll und ab Werk bei allen Installationen des Plug-ins aktiviert ist. Angreifer mussten nur einen speziell gestalteten Nutzernamen eingeben, der SQL-Befehle enthielt.

Ein solcher gescheiterte Anmeldeversuch wird dabei von Loginizer aufgezeichnet und zusammen mit eben diesem speziell gestalteten Nutzernamen in einer WordPress-Datenbanktabelle abgelegt. Dabei bleiben die eingeschlossenen SQL-Befehle intakt, was es Unbefugten gestattete, im Rahmen eines SQL-Injections-Angriffs Code gegen die WordPress-Datenbank auszuführen.

Die Folgen eines Angriffs

Ryan Dewhurst, der Gründer und CEO von WPScan, einer Datenbank für Anfälligkeiten in WordPress, erläutert, dass ein Angreifer auf diese Art ohne Eingabe gültiger Anmeldedaten eine WordPress-Website vollständig kompromittieren kann. Er verwies auch auf den detaillierten Blogeintrag von Mihajloski, in dem auch ein Proof-of-Concept-Skript für die Schwachstelle veröffentlicht wird. „Das erlaubt  jedem mit Basiskenntnissen von Befehlszeilenprogrammen, eine WordPress-Website vollständig zu übernehmen.“

Wegen des Schweregrads der Sicherheitslücke entschloss sich das WordPress-Team, das Update auf Loginizer 1.6.4 ohne Abfrage der Zustimmung der Benutzer auszurollen. Laut Dewhurst ist die dafür benötigte Funktion seit der Version 3.7 (also seit 2013) in WordPress integriert. Ihm seien bisher insgesamt nur zwei Fälle bekannt, in denen darüber Plug-in-Updates zwangsweise verteilt wurden.

Nach Angaben von Samuel Wood, Core Developer für WordPress, wurde die Funktion aber schon mehrfach eingesetzt. Details dazu wollte der Entwickler allerdings nicht nennen.

Das dürfte daran liegen, dass auch der jüngste Vorfall zumindest einige der Nutzer verärgerte. Nach Kommentaren im offiziellen WordPress-Forum war ihnen nämlich nicht bekannt, dass Plug-ins auch bei abgeschalteter Updatefunktion ohne ihre Zustimmung aktualisiert werden können.