Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Kritische Lücke in Content Management System Mambo/Joomla
#1
Nicht immer erhöht unter PHP das Deaktivieren von register_globals die Sicherheit. Manchmal öffnet sich dadurch erst eine Schwachstelle. So auch im Falle des Content Management System Mambo, das laut eines Postings auf der Sicherheits-Mailing-Liste Full Disclosure eine Schwachstelle enthält, mit der es Angreifern möglich ist, eigenen Code auf dem Server auszuführen.

Ursache des Problems soll die Emulationsschicht des Moduls globals.php sein, in dem sich bestimmte Arrays überschreiben lassen. Laut Peter Tachatte, Entdecker der Lücke, sollen sich dadurch beliebige lokale und externe Skripte über den Parameter mosConfig_absolute_path einbinden lassen. Für einen erfolgreichen Angriff muss register_global=off definiert sein. Der Sicherheitsdienstleister Secunia bestätigt, dass die aktuelle Mambo-Version 4.5.2.3 betroffen ist, wahrscheinlich auch vorhergehende.

Ein Patch steht derzeit nicht zur Verfügung. Ob der Hersteller informiert wurde, gibt Tachatte in seinem Advisory nicht an.

Quelle: Heise.de
Mit freundlichen Grüßen / Best Regards

Markus Clemenz
ok-webhosting
Krähwinkelweg 23
71229 Leonberg

Telefon +49 (0)7152 401 82 52
Telefax +49 (0)7152 401 82 53
Email: Kontakt@ok-webhosting.de
Zitieren
#2
Für Mambo-Nutzer gibt es bereits ein Workarround, das die Sicherheitslücke schliessen sollte:

Zitat:<?php
/**
* @version $Id: globals.php,v 1.2 2005/06/27 23:56:30 muffin Exp $
* @package Mambo
* @copyright © 2000 - 2005 Miro International Pty Ltd
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
* Mambo is Free Software
*/

$raw = phpversion();
list($v_Upper,$v_Major,$v_Minor) = explode(".",$raw);

if (($v_Upper == 4 && $v_Major < 1) || $v_Upper < 4) {
$_FILES = $HTTP_POST_FILES;
$_ENV = $HTTP_ENV_VARS;
$_GET = $HTTP_GET_VARS;
$_POST = $HTTP_POST_VARS;
$_COOKIE = $HTTP_COOKIE_VARS;
$_SERVER = $HTTP_SERVER_VARS;
$_SESSION = $HTTP_SESSION_VARS;
$_FILES = $HTTP_POST_FILES;
}

if (!ini_get('register_globals')) {
while(list($key,$value)=each($_FILES)) $GLOBALS[$key] = ($key=="mosConfig_absolute_path") ? "Fuck You" : $value;
while(list($key,$value)=each($_ENV)) $GLOBALS[$key] = ($key=="mosConfig_absolute_path") ? "Fuck You" : $value;
while(list($key,$value)=each($_GET)) $GLOBALS[$key] = ($key=="mosConfig_absolute_path") ? "Fuck You" : $value;
while(list($key,$value)=each($_POST)) $GLOBALS[$key] = ($key=="mosConfig_absolute_path") ? "Fuck You" : $value;
while(list($key,$value)=each($_COOKIE)) $GLOBALS[$key] = ($key=="mosConfig_absolute_path") ? "Fuck You" : $value;
while(list($key,$value)=each($_SERVER)) $GLOBALS[$key] = ($key=="mosConfig_absolute_path") ? "Fuck You" : $value;
while(list($key,$value)=@each($_SESSION)) $GLOBALS[$key] = ($key=="mosConfig_absolute_path") ? "Fuck You" : $value;
foreach($_FILES as $key => $value){
$GLOBALS[$key]=($key=="mosConfig_absolute_path") ? "Fuck You" : $_FILES[$key]['tmp_name'];
foreach($value as $ext => $value2){
$key2 = $key . '_' . $ext;
$GLOBALS[$key2] = $value2;
}
}
}
?>

Für Joomla findet sich eine globals.php-off unter den Installationsdateien, die man bei Installationen mit register_globals off einsetzen sollte.
Mit freundlichen Grüßen / Best Regards

Markus Clemenz
ok-webhosting
Krähwinkelweg 23
71229 Leonberg

Telefon +49 (0)7152 401 82 52
Telefax +49 (0)7152 401 82 53
Email: Kontakt@ok-webhosting.de
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste