Nach nunmehr über sechs Monaten ist wieder ein Update für Joomla erschienen und steht hier zum Download bereit.
Joomla 1.5.16 Wojmamni ama busani!
Das Joomla-Projekt hat nach über einem halben Jahr wieder eine neue Version des beliebten CMS herausgebracht. Die aktuelle Version behebt vier Sicherheitsprobleme und jede Menge anderer Fehler, beinhaltet leider aber auch selber zwei Bugs.
Ein behobenes Problem sind negative Werte für Limit und Offset, die ein User über eine URL eingeben kann. Dadurch wird dann eine PHP-Notice ausgegeben. Diese Notice zeigt aussagekräftige Informationen über das System. Darüber freut sich jeder Hacker.
Ein weiteres Sicherheitsloch stellt das Migrations-Script im Joomla-Installer dar. Das Script prüft keine Dateitypen, die hochgeladen werden. Ist die Installations-Applikation vorhanden, kann ein Angreifer Schadcode auf den Server laden.
Ein weiteres Problem betrifft die Session ID. Diese wird nicht verändert, wenn sich ein Anwender einloggt. Dadurch kann von einer fremden Seite aus, ein Cookie gesetzt werden. Loggt sich ein User nun ein, kann das Cookie zur Authentifizierung des Users verwendet werden.
Eine Sicherheitslücke betrifft den Passwort-Reset. Setzt ein User sein Passwort zurück, werden die Reset-Werte als Klartext in der Datenbank gespeichert. Zum Problem kann dies werden, wenn eine Erweiterung mit SQL-Injection Schwachstelle verwendet wird.
Von diesen Securitylecks sind leider alle Joomla-Versionen ab 1.5 bis einschließlich 1.5.15 betroffen. Eigentlich ist es ja immer anzuraten, sofort ein Update durchzuführen. Leider sind in der jetzt veröffentlichten Release auch richtig dumme Fehler vorhanden. Die nächste Version 1.5.17 ist deshalb schon für den 27. April 2010 angekündigt. Eventuell könnte man das also noch abwarten, was aber eben auch gefährlich sein kann.
Einer der Bugs betrifft die PHP-Version. Ärger kann es geben, wenn PHP vor Version 5.2 verwendet wird, oder wenn der Session Handler Parameter in der Globalen Konfiguration auf None gesetzt wurde. Also im Backend unter Site -> Konfiguration -> System auf der rechten Seite ganz unten bei Sitzung. Hier kann für die Speicherroutine entweder "Datenbank" oder eben "Nirgendwo" gewählt werden. Der Bug bezieht sich somit auf letztere Einstellung. Dies wird also erst mit Joomla 1.5.17 behoben sein. Allerdings kann man sich hier auch selber helfen und muß das vielleicht auch. Denn möglicherweise kommt man gar nicht mehr ins Backend.
Man editiert also die Datei configuration.php ca. bei Zeile 68. Da sollte dann folgendes stehen:
// var $session_handler = 'database'; //
Eine weitere Möglichkeit wäre das Editieren der Datei /libraries/joomla/application.php. Dort findet sich in Zeile 533 folgendes:
// $session->fork(); //
Unter diese Zeile kann dann folgendes eingetragen werden:
// $this->_createSession($session->getId()); //
Leider gibt es in Version 1.5.16 eine Datei, welche nicht kompatibel mit PHP 4 ist. Das kann dann zu einem Parse-Error führen. Am besten führt man in diesem Falle natürlich ein PHP-Upgrade auf Version 5 durch. Ansonsten muss folgende Datei entfernt werden:
// /libraries/joomla/plugin/helper.php //
Nun nimmt man einfach genau die gleiche Datei aus Joomla 1.5.15 und kopiert sie auf den Server. Oder man modifiziert die Datei helper.php selbst. Dazu muss in Zeile 218 das Wort "static" entfernt werden. Damit würde die Zeile so aussehen:
// function shutdown() //
Ärger kann es leider auch mit den Update-Paketen geben. Diese haben die falschen Dateirechte von 775 anstelle von 644. Das Problem entsteht durch das automatisierte Packen der Dateien. Um diesen Fehler zu umgehen, kann man anstelle eines Update-Paketes einfach das Full-Installation-Paket wählen. Damit gibt es diese Probleme nicht. Dieses Ärgernis soll für künftige Versionen natürlich auch nicht mehr auftreten.
Ansonsten wurden in der aktuellen Release noch diverse Fehler für Komponenten, Module, Plugins, dem Backend, dem System und so weiter behoben.