xt:commerce 3 Sicherheitslücke bei whos_online.php

Es gibt ja nach wie vor diesen alten und sehr krepeligen Shop namens „xt:commerce 3“. Da er Open Source ist wurde er auch immer mal wieder geforkt. Beispielsweise durch Gambio oder modified
Die aktive Entwicklung wurde allerdings irgendwann 2008 komplett eingestellt. Seitdem gibt es keine wirklichen Patches mehr für diesen Shop.

Nun haben die Entwickler von Gambio eine kleine Lücke entdeckt, die sie als sicherheitskritisch einstufen. Unter ganz speziellen Umständen: Nämlich der Admin ist im Shop eingeloggt und schaut gerade via „Who is online“ die letzten Besucher an und ein Referer hat zufällig eine bösartige Form angenommen, dann könnte der Shop gekapert werden.

Deshalb ist die Lösung auch ganz simpel:
Beim Auslesen des Links aus der Datenbank werden sämtliche HTML Zeichen durch Unicode ersetzt.

    $whos_online['last_page_url'] = htmlentities($whos_online['last_page_url']);

Gut, diese Zeile war im Original noch nicht drin. Deshalb könnte jemand mit dem Anhang „“ tatsächlich versuchen die Session zu übernehmen.
Da allerdings die Who is Online Einträge in der Datenbank nur sehr zeitlich begrenzt gespeichert werden braucht es wirklich sehr großes Glück vom Angreifer, dass er den Admin erwischt und dieser dann auch noch zufällig auf „Who is Online“ vorbeischaut.

Aber deshalb so einen großen Aufschrei zu veranstalten und auf Rückfrage keine genaue Auskunft zu geben ist doch auch lächerlich.

Zitat von Gambio:

wir bitten um Verständnis, dass wir derzeit noch keine Detailinformationen herausgeben können, die möglicherweise zum Ausnutzen der Sicherheitslücke verwendet werden könnten. Wir möchten zunächst allen Shopbetreibern ausreichend Zeit geben, den eigenen Shop gegen mögliche Angriffe zu sichern. Anschließend werden wir gern entsprechende Informationen herausgeben

Jetzt wo Heise Online schon darüber berichtete ist das Kind schon in den Brunnen gefallen.
Manchmal ist es sinnvoller die Lücke offensiver zu berichten, dann können andere Security Nerds die Lücke auch einschätzen.

Allgemein ist zu empfehlen xt:commerce 3 nicht mehr zu verwenden. Der Code macht sowieso nicht allzu viel Spaß und ist sowieso sehr schwer auf aktuellen Servern zu betreiben. Es wird nämlich noch PHP 5.2 benötigt und das wird von großen Anbietern wie 1und1, Strato oder auch Hetzner nicht mehr angeboten.
Aber domainfactory bietet die alte PHP 5.2 noch an und die haben auch in ihrem Blog recht schnell über die „Lücke“ berichtet.