
Эксплойт для подтверждения концепции для CVE-2025-44137: неаутентифицированный обход каталога в MapTiler Tileserver-php v2.0, позволяющий произвольное чтение файлов через специально созданные GET-параметры.
Неавторизованное чтение файла в MapTiler Tileserver-php v2.0.
MapTiler Tileserver-php v2.0 уязвим для Directory Traversal. Функция renderTile в tileserver.php отвечает за доставку тайлов, хранящихся в виде файлов на сервере, по веб-запросам. При формировании пути к файлу допускается использование '../', что позволяет прочитать любой файл на веб-сервере. Затрагиваемые GET-параметры: "TileMatrix", "TileRow", "TileCol" и "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