Der Sicherheitsforscher Dawid Golunski von Legal Hackers hat Details zu einer Sicherheitslücke beim Zurücksetzen von nicht autorisierten Passwörtern im WordPress-Kern veröffentlicht. Golunski demonstrierte, wie ein Angreifer unter bestimmten Umständen die E-Mail zum Zurücksetzen des Passworts abfangen und Zugriff auf das Konto eines Benutzers erhalten kann.

Der Proof of Concept nutzt Wordpress die Variable SERVER_NAME um den Hostnamen des Servers abzurufen und einen Header zu erstellen Von / Return-Path E-Mail zum Zurücksetzen des ausgehenden Passworts.

Wichtige Webserver wie Apache setzen die Variable SERVER_NAME standardmäßig unter Verwendung des vom Client angegebenen Hostnamens (im HTTP_HOST-Header):

Https://httpd.apache.org/docs/2.4/mod/core.html#usecanonicalname

Da SERVER_NAME geändert werden kann, kann ein Angreifer es in einer beliebigen Domäne seiner Wahl konfigurieren, zum Beispiel:

Attackers-mxserver.com

Welches WordPress die $ from_email Konfiguration geben würde

[E-Mail geschützt]

Und so entsteht eine ausgehende E-Mail mit dem Return / Return-Path-Pfad zu dieser böswilligen Adresse.

Die Ergebnisse dieses bestimmten Angriffs hängen von der Serverumgebung und der spezifischen Konfiguration des Mailservers ab und erfordern in einigen Fällen eine Benutzerinteraktion. Golunskis Bericht enthält eine genauere Aufschlüsselung der möglichen Methoden, die angewendet werden könnten.

Nach Meldung des Problems an das WordPress-Sicherheitsteam im Juli 2016 und auch durch die Website HackerOne, Golunski sah keinen Fortschritt und entschied sich dafür veröffentlichen die Details der Schwachstelle an die Öffentlichkeit.

Obwohl es noch keinen offiziellen Patch gibt, hat der WordPress-Sicherheitsstar Aaron Campbell gesagt, dass das Problem nicht so ernst ist, wie es sein kann.

« Es ist ein Problem mit niedrigerer Priorität, aber wir sind uns dessen bewusst und es befindet sich in unserer Warteschlange„Sagte Campbell. Er erklärte die einzigartigen Bedingungen, die erforderlich wären, damit dies eine ernsthafte Sicherheitslücke darstellt.

« Damit sich das Problem auf die Sicherheit auswirkt, muss ein Server zulassen, dass ein vom Benutzer angegebener Header überschrieben wird $ _SERVER ['SERVER_NAME']„Sagte Campbell. "Wir halten die Serverkonfiguration für unzureichend (z. B. 'display_errors', falls auf einem Produktionsserver zutreffend), was leider außerhalb unserer Kontrolle liegt."

Campbell hat seine persönlichen Apache- und Nginx-Server getestet und keiner von ihnen wurde dafür lizenziert. Campbell sagte, dass neben einem falsch konfigurierten Server auch eine der folgenden Aktionen ausgeführt werden sollte:

  • Ein Benutzer muss auf eine E-Mail zum Zurücksetzen des Kennworts antworten
  • Eine automatische Antwort muss auf die E-Mail antworten und das Original enthalten
  • Ein E-Mail-Server muss kompromittiert oder überlastet sein und die Nachricht muss an den Absender zurückgesendet werden Inhalt intakt

« Wenn Ihr Server anfällig ist und Sie die Serverkonfiguration nicht reparieren können, müssen Sie dennoch keine Änderungen an den WordPress-Dateien vornehmen, um das Problem zu beheben.„Sagte Campbell. "Ein bisschen PHP wie dieses in einem Plugin definiert eine statische E-Mail-Adresse Ihrer Wahl:"

add_filter ('wp_mail_from', function ($ from_email) {return '[E-Mail geschützt] ‚; });

Campbell sagte, dass alle Änderungen, die WordPress am Kernel vornimmt, wahrscheinlich über ein Ticket erfolgen werden, das das Problem derzeit ohne Sicherheitsperspektive verfolgt. Er sagte, es sei unwahrscheinlich, dass in der nächsten Sicherheitsversion eine Lösung gefunden wird, aber das Team arbeitet aktiv daran. Wenn sie eine gute Lösung für das Problem finden, sagte Campbell, dass sie es teilen werden, sobald sie alle möglichen Konsequenzen herausgearbeitet haben.

Und du ? Was halten Sie von dieser Sicherheitsanfälligkeit?