Die Entwickler des WordPress-Plugin WP GDPR Compliance haben gerade die Version 1.4.3 freigegeben. Wer das Plugin einsetzt, sollte dringend auf diese Version aktualisieren, da in früheren Varianten Privilege Escalation-Schwachstellen vorhanden waren, die auch aktiv ausgenutzt wurden.
Anzeige
Eine Nachfrage eines Kollegen
Gerade sind bei mir womöglich einige Puzzleteile ins Bild gefallen. Ein MVP-Kollege mailte mich die Tage an, weil er in einem WordPress-Blog, den er seit kurzem hostete, plötzlich merkwürdiges beobachtete. Er schrieb mir:
Heute hatte ich zum ersten Mal eine „neue Registrierung" auf meinem Blog und der war auch noch sofort Admin.
Und dann lese ich im Blog von WordFence, dass es in älteren Versionen des mit über 100.000 Instalaltionen populären WordPress Plugins WP GDPR Compliance von Van Ons gleich mehrere Schwachstellen gibt. Die gemeldeten Schwachstellen ermöglichen es, nicht authentifizierten, Angreifern, eine Eskalation von Privilegien auszunutzen. Damit können die Angreifer einen Benutzer in WordPress anlegen und gleich zum Administrator hochstufen. Dies ermöglicht es, die Kontrolle über die WordPress-Installation zu erlangen.
Das Plugin wurde darauf hin aus dem WordPress-Repository entfernt. Der Entwickler hat kurze Zeit später hin die Version 1.4.3 des Plugins freigegeben, welche auch wieder im WordPress Repository aufgenommen wurde.
Die Schwachstellen
Das Plugin verarbeitet einige Aktionen, über die admin-ajax.php-Funktion von WordPress. Diese Aktionen beinhalten die von GDPR geforderte Art von Datenzugriffsanforderungen und Löschanforderungen, aber auch Funktionen zum Ändern der Einstellungen des Plugins aus dem WordPress Admin-Dashboard heraus.
Anzeige
Nicht gepatchte Versionen von WP GDPR Compliance-Plugins (bis einschließlich Version 1.4.2) führen jedoch keine Funktionsprüfungen durch, wenn sie ihre interne Aktion save_setting zum Speichern solche Konfigurationsänderungen ausführen. Wenn ein bösartiger Benutzer beliebige Optionen und Werte an diesen Endpunkt sendet, werden die Eingabefelder in der Optionentabelle der Datenbank des betroffenen Standorts gespeichert.
WordFence schreibt im Blog, dass man bereits Fälle von Webseiten gesehen habe, wo diese Schwachstellen ausgenutzt wurden. Der Angreifer kann die Option users_can_register auf 1 setzen. Dadurch kann der Angreifer selbst ein Benutzerkonto in der WordPress-Installation anlegen. Im nächsten Schritt setzt er die Einstellung default_role des neuen Benutzers auf "Administrator" und hat die Kontrolle über den Blog. Ab diesem Zeitpunkt kann er im Blog alles machen.
Die Angreifer können das Formular unter /wp-login.php?action=register einfach ausfüllen und sofort auf ein privilegiertes Konto zugreifen. Von diesem Zeitpunkt an können sie diese Optionen wieder auf normal setzen und ein bösartiges Plugin oder Thema installieren, das eine Web-Shell oder andere Malware enthält, um die Opferseite weiter zu infizieren.
Da ich das Plugin verwende, habe ich natürlich sofort in meinem Blog die Benutzer kontrolliert und nachgesehen, ob da ein Angriff stattgefunden hat. Aber hier kann ich Entwarnung geben. Das Plugin ist aktuell und es gibt nur die von mir angelegten Benutzer. Vermutlich hat es mir 'den Arsch gerettet', das die für WordPress typischen URLs für die Anmeldung und das Formular zum Anlegen neuer Benutzer in meinen Blogs nicht funktionieren.
Wie dem auch immer sei: Alle Seiten, die dieses Plugin verwenden, sollten dringend nachsehen, ob die Version 1.4.3 oder höher des Plugins installiert ist. Falls ein Update nicht möglich ist, sollte das Plugin deaktiviert und dann gelöscht werden. Weitere Informationen lassen sich im WordFence-Blogbeitrag (Englisch) oder bei heise.de (Deutsch) nachlesen. Ergänzung: Das Team von WordFence hat mich per Mail über einen zweiten Blog-Beitrag informiert. In diesem Beitrag hat das Sicherheitsteam von WordFence Informationen zum Thema zusammen getragen und beschreibt, wie man einen Befall feststellen kann.
Anzeige
Wenn eine Admin Registrierung stattgefunden hat, lässt sich über die Analyse der Logdateien recht einfach herausfinden, ob es weitere Aktionen gab / die Wiederherstellung eines Backups vom ~7.11. nötig ist.
Dazu habe ich einen kurzen Blogartikel veröffentlicht mit Analyse Beispielen – vielleicht hilft das dem ein oder anderen:
https://website-bereinigung.de/blog/wp-gdpr-compliance-sicherheitsluecke
Gruß
Pascal
Der Admin kann doch bestimmt auch du Log Dateien modifizieren.
Hallo Herr Born,
welches Plugin verwenden Sie denn dafür?
Beste Grüße,
Kai MK
Nennt sich Rename wp-login.php – wird aber nicht mehr supported – tut aber, was es soll.
GitHub
Möglicherweise macht wps-hide-login das Gleiche.