Sicherheitsleck in WordPress
Wer den Reset seines WordPress-Passworts anstößt, erhält von WordPress eine Mail mit einem Bestätigungslink. Wird dieser angeklickt, verschickt das Weblog-System eine weitere Mail mit dem neuen Passwort. Der Bestätigungslink ist aber immer gleich aufgebaut und sieht beispielsweise so aus:
http://domainname.tld/wordpress/wp-login.php?action=rp&key=dkjADKJas28eDAKDH
Ruft man nun eine solche URL auf und macht aus der Variablen key ein Array (wp-login.php?action=rp&key[]=), dann wird das Passwort zurückgesetzt, ohne dass der Admin das zuvor angestoßen hätte. WordPress verschickt natürlich die Mail mit dem neuen Passwort, doch bis dieses eintrifft, gelangt der Admin nicht in sein Weblog. Per Skript lässt sich der Aufruf der URL beliebig wiederholen, um den Admin längerfristig auszusperren.
Die WordPress-Entwickler arbeiten bereits an einem Update. Man kann die wp-login.php aber auch manuell abdichten, indem man
if ( empty( $key ) )
durch
if ( empty( $key ) || is_array( $key ) )
ersetzt, um zu verhindern, dass Arrays übergeben werden. (Daniel Dubsky)