Sicherheitslücke für WordPress Seiten

Der ein oder andere kennt das möglicherweise: Es gibt eine Ankündigung auf einer der größeren Webseiten, die sich mit einer Sicherheitslücke befasst. Man überfliegt den Eintrag, macht sich eine mentale Notiz und…

… vergisst vollkommen, was man gelesen hatte.

Zumindest bis man dann selbst betroffen ist, eine der eigenen Webseiten infiziert wurde und man reagieren muss. Leider hatte es auch einen unserer Kunden erwischt, dessen Seite durch eine der wenigen Sicherheitslücken in WordPress lahm gelegt wurde. Daher möchte ich heute noch mal über die timthumb.php Problematik informieren, die viele Webseitenbetreiber betroffen hat.

Was ist timthumb?

timthumb ist ein kleines php Script, das Bilder vergrößern und verkleinern kann. Anstatt also von Hand ein Miniaturbild („Thumbnail“) eines Bildes erstellen zu müssen, muss man nur irgendein Bild in praktisch beliebiger Größe auf den Webserver laden und den Rest macht dann timthumb für euch. So können aus nur einem Bild ein Thumbnail, ein Head-Banner und weitere verschiedene Bilder generiert werden.

Viele Theme-Designer haben sich auf timthumb verlassen anstatt eigene Lösungen für die Bildverkleinerung zu entwickeln. Aus diesem Grund betraf das Problem auch dermaßen viele Webseiten.

Was verursachte den Fehler?

Um die verkleinerten Bilder erzeugen und abspeichern zu können, benötigt die timthumb.php Schreibrechte auf ein Cache-Verzeichnis (sehr häufig /cache, aber abhängig vom verwendeten Theme kann auch ein anderes Verzeichnis verwendet werden). Darüber hinaus ermöglichte es timthumb.php ursprünglich auch, Bilder zu verkleinern, die nicht auf dem eigenen Webserver gehostet waren sondern auf einer der besonders beliebten Blog- oder Bild-Anbieter- und Hostingseiten, wie blogger.com, flickr.com oder picasa.com.

Leider wurde im Quellcode des Scripts nicht überprüft, ob es sich bei der jeweiligen Quelldatei auch wirklich um ein Bild handelte. Daher war es möglich, auf einem bei blogger.com gehosteten Blog beliebige Dateien mittels timthumb in das Cache-Verzeichnis der Zielseite zu laden, wo es dann geduldig auf einen Aufruf wartete.

Sobald dieser erfolgte, konnte das Script seine schändliche Tat verrichten und weitere schadhafte Dateien in die Verzeichnisse des Zielservers laden.

Fehlerbeseitigung

Glücklicherweise ist die Fehlerbeseitung nicht allzu kompliziert:

1.) Lade die neuste Version der timthumb.php herunter

Mark Maunder, der als einer der ersten über diese Sicherheitslücke bloggte, setzte sich mit dem Entwickler der timthumb.php zusammen und gemeinsam konnten sie eine deutlich verbesserte Version des Scripts entwickeln, die auch keinen Schadcode mehr auf den Server einschleust.

2.) Leere das Cache-Verzeichnis, das timthumb nutzt

Da die Dateien in diesem Verzeichnis sowieso neu erzeugt werden, wenn sie benötigt werden, braucht ihr hier keine Angst zu haben und könnt ruhig den gesamten Cache-Ordner leeren.

3.) Lösche die restlichen schadhaften Dateien von deinem Webserver

Diese Liste hat mir sehr weitergeholfen, da folgende Dateien auf dem Webserver unseres Kunden vorhanden waren und dort nicht hin gehörten:

/wp-admin/js/config.php
/wp-admin/common.php
/wp-admin/udp.php
/wp-content/udp.php
/wp-content/uploads/feed-file.php
/wp-content/uploads/feed-files.php

Ich kann leider nicht garantieren, dass diese Liste vollständig ist, doch in jedem Fall sollte sie ein guter Anfang sein, um den eigenen Server wieder virenfrei zu bekommen.

Weitere Informationen

können in diesem sehr ausführlichen Blog-Eintrag gefunden werden:

Solltest du Hilfe beim Updaten der timthumb.php benötigen oder andere Probleme mit deinem Blog haben, so schreib uns und lass uns wissen, was nicht funktioniert. Wir würden uns freuen, dir weiterhelfen zu können.

Über Oliver Gehrmann

Oliver Gehrmann ist Gründer der Agentur nexTab, Fan von Sammelkartenspielen, verheiratet und Vater von zwei Jungs, von denen gerüchteweise sogar vereinzelt Bilder in dieser Webseite eingearbeitet sind...