[Mapbender-users] Sicherheitslücke - security leak

Christoph Baudson christoph.baudson at wheregroup.com
Thu Mar 13 07:35:21 EDT 2008


Durch einen Penetrationstest sind zwei Sicherheitslücken in Mapbender 
gefunden worden. Diese sind in der Version 2.4.5 rc1 behoben worden. 
Details sind hier zu finden:

1) Remote Command Execution in Mapbender, siehe

http://www.redteam-pentesting.de/advisories/rt-sa-2008-001.php

Als Workaround empfehlen wir, die Datei mapFiler.php aus dem Ordner 
"tools" zu löschen, oder alternativ den Ordner "tools" mittels .htaccess 
durch ein Passwort zu schützen.

In Mapbender 2.4.5 rc1 ist der "tools"-Ordner entfernt worden. Falls 
dieser benötigt wird, kann er aus dem SVN ausgecheckt werden und unter 
Beachtung des Workarounds eingesetzt werden. Die SVN-Adresse lautet

https://svn.osgeo.org/mapbender/branches/2.4.5/http/tools/

2) SQL-Injections in Mapbender, siehe

http://www.redteam-pentesting.de/advisories/rt-sa-2008-002.php

In der Datei "http/php/mod_gazetteer_edit.php" muss hier als Workaround 
die SQL-Auswertung mittels Prepared Statements erfolgen. Folgende Zeilen

$sql = "SELECT * FROM gazetteer WHERE gazetteer_id = ".$_REQUEST["gaz"];
$res = db_query($sql);

müssen durch 

$sql = "SELECT * FROM gazetteer WHERE gazetteer_id = $1";
$v = array($_REQUEST["gaz"]);
$t = array("i");
$res = db_prep_query($sql, $v, $t);

ersetzt werden.

--

A penetration test has identified two security leaks in Mapbender. These leaks have been fixed in version 2.4.5 rc1.

1) Remote Command Execution in Mapbender, see

http://www.redteam-pentesting.de/advisories/rt-sa-2008-001.php

As Workaround, delete the file Datei mapFiler.php in folder "tools", or alternatively secure the "tools" folder with a password via .htaccess

In Mapbender 2.4.5 rc1 the "tools" folder has been deleted. If required, download it from the SVN, with regard to the given workaround. The SVN location is

https://svn.osgeo.org/mapbender/branches/2.4.5/http/tools/



2) SQL-Injections in Mapbender, see

http://www.redteam-pentesting.de/advisories/rt-sa-2008-002.php

In the file "http/php/mod_gazetteer_edit.php" the SQL evaluation has to be done via prepared statements. Replace the following lines

$sql = "SELECT * FROM gazetteer WHERE gazetteer_id = ".$_REQUEST["gaz"];
$res = db_query($sql);

by

$sql = "SELECT * FROM gazetteer WHERE gazetteer_id = $1";
$v = array($_REQUEST["gaz"]);
$t = array("i");
$res = db_prep_query($sql, $v, $t);

--

Gruß, Christoph Baudson



More information about the Mapbender_users mailing list