Sicherheit

Wie wir soeben feststellen mussten, wird durch den Einsatz des Datenbanklayers (sql_layer.php) unseres CMS vkpMx/pragmaMx, in anderen phpNuke ähnlichen Systemen eine schwere Sicherheitslücke aufgetan.

In unserem Script ist es möglich sämtliche sql-Anweisungen, die zur Generierung der HTML-Ausgabe benötigt werden, zur Fehleranalyse direkt in der HTML-Ausgabe mit anzuzeigen.
Weiterhin ist es möglich, sämtliche sql-Fehlermeldungen auf Wunsch anzeigen zu lassen.
Dies wird durch zwei globale Variablen gesteuert, die im Konfigurationsmenü von vkpMx/pragmaMx, verändert werden können.

Diese Variablen sind nur in der Umgebung des vkpMx/pragmaMx definiert. Durch den in phpNuke-Systemen üblichen pauschalen Import der Requestvariablen, selbst bei der Einstellung register_globals=OFF, können diese Variablen direkt an das Script gesendet werden. Dies bewirkt, dass jeder Besucher durch simple Übergabe der entsprechenden Variablennamen in der URL sämtliche sql-Anweisungen und selbst provozierte sql-Fehlermeldungen anzeigen lassen kann.

Beispiele:

  • http://www.xxx-domain.tld/modules.php?name=News&mxSqlErrorDebug=1
    - zeigt die erste eventuelle sql-Fehlermeldung, im normalen HTML-Ausgabetext, mit an. Anschliessend wird das Script mit einer Fehlermeldung beendet, weil die aufgerufene Funktion mxDebugBacktrace() nicht gefunden wird. Dies könnte den vollen Serverpfad zum script enthüllen.
  • http://www.xxx-domain.tld/modules.php?name=News&mxSqlDebug=1
    - zeigt sämtliche sql-Anweisungen an, die über den Datenbanklayer geleitet werden.
  • http://www.xxx-domain.tld/modules.php?name=News &mxSqlErrorDebug=1&mxSqlDebug=1&irgendwas=etwas
    - Durch die geschickte Kombination von Übergabeparametern ist es möglich dem CMS die tiefsten Geheimnisse zu entlocken.

Unseres Wissens wurde die Datei seit Mitte 2004 mit sämtlichen Versionen des CMS "cPortal" (http://cportal-community.de/) und den ersten Versionen des Mini-CMS cp-Light (http://cp-light.info/) ausgeliefert. Entsprechend dürften fast alle Installationen dieser beiden CMS von der Sicherheitslücke betroffen sein.



Update #1:

Das cPortal Team hat nach einer Mitteilung durch einen Mitarbeiter von heise.de, inzwischen einen Fix zur Verfügung gestellt.

Da der Fix dort leider nur für angemeldete Forenuser verfügbar ist, hier ein kleiner Schnellfix um die Lücke zu stopfen:

Editieren Sie die Datei /includes/sql_layer.php und fügen sie am Anfang der Datei folgende 2 Zeilen zusätzlich ein:

$mxSqlErrorDebug=0;
$mxSqlDebug=0;

Ganz einfach....

Update #2:

Diese Lücke betrifft nicht das 2f-CMS (dort wird eine eigene Lösung eingesetzt), sondern nur Installationen bei welchen die Mx-Layer ausserhalb von VkpMx oder PragmaMx verwendet wird.


Update #3, 2.6.2005 18:30h:

Bei einer gründlichen Überprüfung des vkpMx/pragmaMx mussten wir leider feststellen, dass es unter Umständen möglich ist die o.g. Beispiele auch innerhalb des vkpMx und pragmaMx einzusetzen.

Wir raten daher allen WebSitebetreibern die vorhandene Datei (includes/sql_layer.php) gegen die neue, angepasste Version auszutauschen.
angepasste sql_layer.php

Weitere Informationen sind im Forum zu finden.