
Exploit de preuve de concept pour CVE-2025-44137: traversée de répertoire non authentifiée dans MapTiler Tileserver-php v2.0, permettant la lecture arbitraire de fichiers via des paramètres GET spécialement conçus.
Lecture de fichier non authentifiée dans MapTiler Tileserver-php v2.0.
MapTiler Tileserver-php v2.0 est vulnérable à une traversée de répertoire. La fonction renderTile dans tileserver.php est chargée de délivrer les tuiles stockées sous forme de fichiers sur le serveur via une requête web. La construction du chemin d'accès à un fichier permet l'utilisation de '../', qui peut être utilisé pour lire n'importe quel fichier sur le serveur web. Les paramètres GET concernés sont "TileMatrix", "TileRow", "TileCol" et "Format".
$name = './' . $tileset . '/' . $z . '/' . $x . '/' . $y;
$mime = 'image/';
if($ext != null){
$name .= '.' . $ext;
}
if ($fp = @fopen($name, 'rb')) {
if($ext != null){
$mime .= $ext;
}else{
//detect image type from file
$mimetypes = ['gif', 'jpeg', 'png'];
$mime .= $mimetypes[exif_imagetype($name) - 1];
}
header('Access-Control-Allow-Origin: *');
header('Content-Type: ' . $mime);
header('Content-Length: ' . filesize($name));
fpassthru($fp);
die;

Martin Herancourt