Sicherheitslücken im Blog-System Wordpress

Durch mehrere Programmierfehler lässt sich JavaScript-Code in Kommentare einschleusen und weitergehende Informationen über die Dateisystemstruktur des Webservers erlangen.

In Pocket speichern vorlesen Druckansicht 64 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Christiane Rütten

In dem Blog-System Wordpress wurden mehrere Sicherheitslücken entdeckt, die so genanntes Cross Site Scripting (XSS) und die Preisgabe interner Serverinformationen ermöglichen, wie aus einem Advisory einer Gruppe Namens Neo Security Team hervorgeht. Durch eine unzureichende Filterung der Kommentare lässt sich JavaScript-Code in diese einbetten, der nach ihrer Freischaltung auf den Rechnern der Besucher zur Ausführung kommt. Dies ist besonders kritisch bei Wordpress-Installationen, auf denen keine Moderation erfolgt und Kommentare automatisch freigeschaltet werden. Ein unregistrierter Nutzer könnte sich auf diese Weise möglicherweise administrativen Zugang zum Blog verschaffen, wenn die manipulierten Kommentare von einem eingeloggten Administrator gelesen werden.

Weiterhin lassen sich aufgrund fehlender Sicherheitsabfragen diverse PHP-Skripte von Wordpress direkt aufrufen. Häufig kommt es dabei, wie beispielsweise bei der Datei wp-includes/default-filters.php, zu einer Fehlermeldung, die den vollständigen Pfad der Wordpress-Installation im Dateisystem des Servers enthält. Unter Umständen lassen sich mit dieser Information weitere Angriffe gegen das Blog-System oder den Server realisieren. Darüber hinaus wird in dem Advisory ein frei zugängliches Directory-Listing beim Aufruf des Verzeichnisses wp-includes/ bemängelt, was jedoch als unkritisch eingestuft wird.

Die Fehler wurden in Wordpress 2.0.1 nachgewiesen. Laut Advisory sind auch alle älteren Versionen davon betroffen. Ein offizieller Patch ist bislang nicht verfügbar, doch in dem Advisory wird zur Behebung der XSS-Lücke empfohlen, die vier Aufrufe der Funktion trim() in der Datei wp-comments-post.php von Wordpress 2.0 durch htmlentities(trim()) zu ersetzen, um die erforderliche Filterung nachzurüsten. Direkt ausführbare PHP-Skripte lassen sich demnach durch ein vorangestelltes if (eregi('Name-des-Skripts-eintragen.php', $_SERVER['PHP_SELF'])) die('You are not allowed to see this page directly'); gegen direkten Aufruf sichern. Bis zum Erscheinen einer gepatchten Version kommt als möglicher Workaround gegen XSS-Angriffe die gewissenhafte Moderation sämtlicher Kommentare infrage.

Siehe dazu auch: (cr)