Weihnachts Sicherheitswarnung: php injection


Das Problem

Beim Upload von Bildern über die "Wiki Bearbeiten" Seiten wurden die hochgeladenen Dateien nicht überprüft, so daß ein bösartiger Benutzer mit der Berechtigung zum Upload eine beliebige PHP-Datei hochladen und direkt unter img/wiki_up/ ausführen konnte. Der Fehler ist recht simpel, dumm und offensichtlich. Es ist recht erstaunlich, daß bisher noch niemand diesen Fehler behoben hat.


Die Lösung

Reparieren Sie ihr Tikiwiki so bald als möglich!

Überprüfen Sie, ob ihr Tiki schon Opfer eines Exploits wurde


Suchen sie im Verzeichnis img/wiki_up (bzw. img/wiki_up/$tikidomain/ bei Multitiki) nach Dateien mit der Endung .php, .php3, .php4 oder .phtml. Das funktioniert z.B. mit den folgenden Einzeilern:

Copy to clipboard
find img/wiki_up -type f -name "*.php" find img/wiki_up -type f -name "*.php3" find img/wiki_up -type f -name "*.php4" find img/wiki_up -type f -name "*.phtml"

Ab Tiki 1.9 liegt dort evtl. schon eine index.php um zu verhindern, daß man bei falsch konfiguriertem Webserver den Inhalt des Verzeichnisses auslesen kann. Sie sollten sich die Datei aber in jedem Falle genauer anschauen.

Überprüfen Sie die Apache Logdateien


Um herauszufinden, ob jemand eine ungewünschte PHP Datei hochgeladen hat, können Sie grep auf die Logdateien benutzen:

Copy to clipboard
grep 'img/wiki_up/[^"]*.ph\(p\(3\|4\)\?\|tml\) ' var/log/apache/yourtiki.access.log

oder benutzen Sie zgrep, falls die Logdateien regelmäßig weggerollt werden:

Copy to clipboard
zgrep 'img/wiki_up/[^"]*.ph\(p\(3\|4\)\?\|tml\) ' var/log/apache/yourtiki.access.log*

Spielen Sie einen Fix ein


Der schnellste Notfallfix ist das Deaktivieren von Bildern in Wikis über die Adminseiten (/tiki-admin.php?page=wiki).

Eine zweite Möglichkeit ist, das Uploaden von Bildern in Wikis nur für Administratoren zu erlauben, indem die Berechtigung tiki_p_upload_picture nur für die Administratoren-Gruppe gesetzt wird.

Natürlich gibt es auch einen richtigen Fix, der ermöglicht, daß das Hochladen von Bildern wie gewohnt weiterbenutzt werden kann. Dazu muß die Datei tiki-editpage.php ersetzt oder angepaßt werden:

  • CVS Benutzer :
    Holen Sie sich einfach die neueste Version, alle Branches von 1.7 bis 1.10 wurden gefixt.
    Copy to clipboard
    cvs -q update -dP

  • Sonstige Benutzer :
    Fügen Sie folgende Zeile in tiki-editpage.php ein:
    Copy to clipboard
    if (preg_match('/\.(gif|png|jpe?g)$/i',$picname))

    direkt vor der Zeile mit dem Inhalt:
    Copy to clipboard
    move_uploaded_file( ...
    • bei version 1.7.x in Zeile 106
    • bei Version 1.8.x in Zeile 138
    • bei Version 1.9rcx in Zeile 173 und 181
    • bei Version 1.10 in Zeile 172

Die Lösung für System-Administratoren

Alternativ zum Austauschen/Korrigieren der Datei kann auch einfach verboten werden, daß Dateien aus dem Verzeichnis geparsed werden.

  • Benutzen Sie Apache, haben jedoch keine Zugriff auf dessen Konfiguration, dann legen Sie in img/wiki_up eine Datei .htaccess an mit dem Inhalt:
    Copy to clipboard
    <FilesMatch "\.ph(p(3|4)?|tml)$"> order deny,allow deny from all </FilesMatch>

    Falls das nicht funktioniert, bitten Sie den Admin, die Nutzung von .htaccess für folgende Nutzung freizuschalten:
    Copy to clipboard
    AllowOverride Limit

    für den gesamten Verzeichnisbaum, in dem ihr Tiki liegt.

  • Falls Sie selbst Admin sind und die Apache-Konfiguration anpassen können:
    Copy to clipboard
    <Directory /var/www/tiki/img> <FilesMatch "\.ph(p(3|4)?|tml)$"> order deny,allow deny from all </FilesMatch> </Directory>

    Hierbei ist natürlich noch der Pfad auf das img/ Verzeichnis anzupassen.

    Beide Methoden verbieten den Zugriff auf PHP Dateien im img-Verzeichnis, aber evtl. sollten Sie das gleich auf alle ausführbaren Dateitypen ausdehnen (.pl, .vb etc.)


Neue Releases in den Startlöchern


Für jeden Versionszweig wird in den nächsten Tagen ein neues Release veröffentlicht, als da wären 1.7.9, 1.8.5 und 1.9dr4. Falls Sie keinen der obenstehenden Fixes ausgeführt haben:

Aktualisieren Sie Ihr Tiki so bald wie möglich!

Denken Sie daran: Sie können jederzeit einen Sicherheitshinweis an uns schicken über die EMail-Adresse security at tikiwiki.org.


mose
für das Tikiwiki Security Team