
Prueba de concepto de exploit para CVE-2025-44137: directory traversal no autenticado en MapTiler Tileserver-php v2.0, permitiendo lectura arbitraria de archivos mediante parámetros GET diseñados.
Lectura de archivos no autenticada en MapTiler Tileserver-php v2.0.
MapTiler Tileserver-php v2.0 es vulnerable a Directory Traversal. La función renderTile dentro de tileserver.php es responsable de entregar tiles que se almacenan como archivos en el servidor mediante una solicitud web. Al crear la ruta a un archivo se permite el uso de '../', que puede ser usado para leer cualquier archivo en el servidor web. Los parámetros GET afectados son "TileMatrix", "TileRow", "TileCol" y "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