Bekannte Sicherheitslücke im Wordpress Core

WordPress 4.7.4 Zero-Day-Exploit

Share on Facebook7Tweet about this on Twitter5Share on Google+0Share on LinkedIn0Email this to someone

Wer das Plugin WP-SpamShield im Einsatz hat, ist möglicherweise bereits mit der Sicherheitsmeldung konfrontiert worden, dass für die aktuelle WordPress Version 4.7.4 eine Vulnerabilität vorliegt. Wir zeigen dir, wie du diesen so genannten Zero-Day-Exploit entschärfen kannst, und was dahintersteckt.

Betroffen sind laut Aussage von Dawid Golunski, Sicherheitsforscher bei Legal Hackers, all jene WordPress Installationen, die auf falsch konfigurierten Servern laufen. Dies ist beispielsweise häufig bei Apacheserver der Fall.

Wordpress 4.7.4 Password Recovery Exploit

Diese Warnmeldung erscheint beim Öffnen des WordPress Dashboards, sofern man das Plugin WP-SpamShield nutzt:

SECURITY ALERT: Insecure WordPress version detected. Your site is running WordPress version 4.7.4, which has 1 known security vulnerabilities. You should upgrade WordPress as soon as possible. More Information: https://wpvulndb.com/wordpresses/474

Was steckt hinter der Sicherheitslücke in WordPress 4.7.4?

Die Sicherheitslücke kann über die „Passwort vergessen“ Funktion von Angreifern ausgenutzt werden, indem die Variable $_SERVER[‚SERVER_NAME‘] mit einem anderen Domainnamen überschrieben wird. Die E-Mail mit dem Link zum Zurücksetzen des Passwortes enthält dann einen anderen Absender mit der vom Angreifer hinterlegten Adresse.

Ein manipulierter E-Mail Header könnte dann so aussehen:

Subject: [Pressengers WP] Password Reset
Return-Path: <wordpress@some-wordpress-attacker.com>
From: WordPress <wordpress@some-wordpress-attacker.com>

Nun ist das allein noch keine Grundlage für das Hacken deiner WordPress Installation, kreative Hacker dürften aber keine Mühen haben, an den Password Reset Link zu gelangen.

Denkbare Szenarien wären beispielsweise ein vorangehender E-Mail Spam mit großen Dateianhängen, um das Postfach des betroffenen Users zu überfüllen und ein Bounce Back der WordPress E-Mail zu erreichen. Da bei Windowsrechnern der Return-Path in E-Mails automatisch der Absenderadresse entspricht (sofern dieser nicht anders definiert wird), wäre das die vom Angreifer injizierte Mailadresse.

Eine weitere Möglichkeit stellen Autoresponder dar, welche von vielen Anwendern bei Abwesenheit gesetzt werden. Wird die originale E-Mail dem Autoresponder beigefügt, erhält der Angreifer so den Link zum Zurücksetzen des Passworts.

Und das waren nur zwei von vielen denkbaren Möglichkeiten, diesen Exploit auszunutzen.

So einfach behebst du den WordPress 4.7.4 Zero-Day-Exploit

Diese Sicherheitslücke ist dem WordPress Team bereits seit Juli 2016 bekannt, scheint aber in der Entwicklung keine Priorität zu haben. Daher raten wir dir selbst für mehr Sicherheit zu sorgen. Das kann auf mehreren Wegen geschehen und ist schnell sowie ohne weitreichende Programmierkenntnisse möglich.

Workaround über das WordPress Theme

Unser Workaround Nr. 1 kann schnell und einfach über die functions.php deines (Child-)Themes umgesetzt werden. Füge einfach folgende Zeile ans Ende der Datei

add_filter( 'wp_mail_from', function( $from_email ) { return 'wordpress@pressengers.de'; } );

Diese Codezeile bewirkt, dass die Absenderadresse deiner WordPress Installation auf die angegebene E-Mail festgelegt wird. Somit greift die interne Funktion im Core von WordPress nicht auf die Servervariable zu, und kann folglich auch nicht von Angreifern überschrieben werden.

Wichtig: Füge deine eigene Absenderadresse in unserem Beispielcode ein.

Workaround über .htaccess

Dieser Lösungsansatz macht sich die .htaccess Datei deines Servers zu nutze und ist generell zu empfehlen, um deine Site auf einer festgelegten Domain erreichbar zu machen und alle anderen Varianten (z.B. ohne „www.“) auf die Hauptadresse umzuleiten:

RewriteEngine On
RewriteCond %{HTTP_HOST} !=www.pressengers.de
RewriteRule ^/?(.*)$ https://www.pressengers.de/$1 [R=301,L]

Bitte beachte folgendes, wenn du obenstehenden Code in deiner .htaccess Datei nutzt:

  • Die erste Zeile „RewriteEngine On“ muss nur einmal in deiner .htaccess Datei vorkommen.
  • Platziere den Code möglichst weit oben.
  • Tausche „pressengers.de“ gegen deinen Domainnamen
  • Solltest du kein SSL nutzen, tausche „https“ gegen „http“ in Zeile drei
  • Die .htaccess Datei muss im Stammverzeichnis deiner WordPress Installation liegen, dort wo sich auch die wp-config.php befindet.

Grundsätzlich ist es zu empfehlen, das wp-admin Verzeichnis mit einem .htaccess Schutz zu versehen. Selbst wenn Angreifer an die Passwörter eurer WordPress User kommen, steht ihnen so eine weitere, je nach Passwort äußerst große Hürde im Weg. Lese hier, wie du die .htaccess für WordPress anpassen kannst.

Weitere Quellen zur Host Header Injection in Password Reset (WordPress 2.3-4.7.4)


Share on Facebook7Tweet about this on Twitter5Share on Google+0Share on LinkedIn0Email this to someone

Schreibe einen Kommentar

Pressengers lebt von der Wordpress Community, beteilige dich mit einem Kommentar!
Deine E-Mail Adresse wird nicht veröffentlicht.

Achtung: Mit dem Absenden eines Kommentars erklärst du dich damit einverstanden, dass alle eingegebenen Daten und deine IP-Adresse zum Zweck der Spamvermeidung durch das Programm Akismet in den USA überprüft und gespeichert werden. Weitere Informationen zu Akismet und Möglichkeiten des Widerrufs..