Vulnerabilidad en MindsDB (CVE-2023-50731)
Gravedad CVSS v3.1:
CRÍTICA
Tipo:
CWE-22
Limitación incorrecta de nombre de ruta a un directorio restringido (Path Traversal)
Fecha de publicación:
22/12/2023
Última modificación:
05/01/2024
Descripción
MindsDB es un servidor SQL para inteligencia artificial. Antes de la versión 23.11.4.1, el método `put` en `mindsdb/mindsdb/api/http/namespaces/file.py` no valida el valor del nombre controlado por el usuario, que se usa en un nombre de archivo temporal, que se muestra posteriormente. abierto para escritura en las líneas 122-125, lo que conduce a inyección de ruta. Más adelante en el método, el directorio temporal se elimina en la línea 151, pero como podemos escribir fuera del directorio utilizando la vulnerabilidad de inyección de ruta, el archivo potencialmente peligroso no se elimina. Se pueden escribir contenidos de archivos arbitrarios debido a `f.write(chunk)` en la línea 125. Mindsdb verifica más adelante en la línea 149 en el método `save_file` en `file-controller.py` que llama al método `_handle_source` en ` file_handler.py` si un archivo es de uno de los tipos `csv`, `json`, `parquet`, `xls` o `xlsx`. Sin embargo, dado que la verificación se realiza después de que el archivo ya se haya escrito, los archivos seguirán existiendo (y no se eliminarán debido a la inyección de ruta descrito anteriormente), solo el método `_handle_source` devolverá un error. La misma fuente controlada por el usuario también se utiliza en otro receptor de inyección de ruta en la línea 138. Esto conduce a otra inyección de ruta, que permite a un atacante eliminar cualquier archivo `zip` o `tar.gz` en el servidor.
Impacto
Puntuación base 3.x
9.10
Gravedad 3.x
CRÍTICA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:a:mindsdb:mindsdb:*:*:*:*:*:*:*:* | 23.11.4.1 (excluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://github.com/mindsdb/mindsdb/blob/1821da719f34c022890c9ff25810218e71c5abbc/mindsdb/api/http/namespaces/file.py#L122-L125
- https://github.com/mindsdb/mindsdb/blob/1821da719f34c022890c9ff25810218e71c5abbc/mindsdb/api/http/namespaces/file.py#L138
- https://github.com/mindsdb/mindsdb/security/advisories/GHSA-j8w6-2r9h-cxhj
- https://securitylab.github.com/advisories/GHSL-2023-182_GHSL-2023-184_mindsdb_mindsdb/