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-5452 — Análise técnica detalhada de CVE-2024-5452, uma vulnerabilidade de execução remota de código no PyTorch Lightning através de poluição de propriedade delta do DeepDiff, com prova de conceito e orientação de mitigação. | Kitploit
Ferramentas/GitHubGitHub/skrkcb2/cve-2024-5452
Análise de VulnerabilidadesAnálise de CódigoExploraçãoExploração de Aplicações WebAprendizado e EducaçãoSegurança de IA
GitHubskrkcb2/cve-2024-5452

CVE-2024-5452

Análise técnica detalhada de CVE-2024-5452, uma vulnerabilidade de execução remota de código no PyTorch Lightning através de poluição de propriedade delta do DeepDiff, com prova de conceito e orientação de mitigação.

Ver Repositório
3há 1 anoAinda 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-5452

01. Visão geral do RCE e pytorch-lightning

  • 1) Visão geral do RCE e pytorch-lightning

    RCE (Remote Code Execution, Execução Remota de Código) é uma vulnerabilidade que permite a um invasor executar código arbitrário remotamente dentro de um sistema ou aplicação, e é CWE-94: Improper Control of Generation of Code ('Code Injection').

    PyTorch Lightning é uma biblioteca que ajuda a gerenciar facilmente o treinamento de modelos de aprendizado profundo baseados em PyTorch, e DeepDiff é uma biblioteca que analisa as diferenças comparando dois objetos Python.

    CVE-2024-5452 é uma vulnerabilidade que, no processo de utilização do DeepDiff e Lightning nas funcionalidades da aplicação web relacionadas aos pesos do modelo de IA do Lightning, causa RCE durante a desserialização através de uma validação de cabeçalho vulnerável do DeepDiff e contaminação de atributos delta.

    Através disso, examinaremos o fluxo de código onde ocorre a vulnerabilidade que permite a um invasor injetar objetos arbitrários ou executar código remoto (RCE), e buscaremos medidas de mitigação.

02. Análise da vulnerabilidade de desserialização no ambiente pytorch-lightning

  • 2.1 Análise de ataque usando contaminação Delta no DeepDiff

    [Figura 6] é o fluxo da segunda requisição após a configuração do delta: run_once() -> maybe_apply_change() -> _collect_deltas_from_ui_and_work_queues() Na [Figura 7], a verificação isinstance em _collect_deltas_from_ui_and_work_queues() passa com a configuração contaminada (isinstance(delta, _DeltaRequest) == False), fazendo com que o fluxo siga para o else. Na [Figura 8], para facilitar a compreensão, são exibidos os resultados de isinstance(delta, _DeltaRequest), delta, _DeltaRequest(tipo). A primeira requisição é uma requisição de configuração definindo a adulteração, portanto está normal, e a requisição seguinte tem o tipo _DeltaRequest contaminado para str, contornando a condição. A seguir, veremos o exemplo do próximo alvo no fluxo, _process_requests. Como visto na [Figura 9], com o mesmo conteúdo acima, _process_requests passa pela verificação isinstance(request, _APIRequest) com a configuração contaminada do código POC do cliente do lado direito. Essa contaminação é um caso onde a chamada isinstance em uma instância de OrderSet retorna verdadeiro para str. Até agora vimos dois tipos de contaminação isinstance; a situação seguinte envolve a criação de uma configuração que permite chamar atributos através da contaminação. Após contornar o isinstance na [Figura 10] e finalizar a configuração da função, define-se "Estado interno fixo" (_INTERNAL_STATE_VARS: deixado vazio) na [Figura 10], impossibilitando a verificação do estado interno na [Figura 11].

No pytorch-lightning, entre os endpoints do DeepDiff da aplicação web, é possível atacar enviando para /api/v1/delta a contaminação dos atributos do delta.
Examinando exemplos, vamos entender como a contaminação dos atributos dunder do delta pode causar uma vulnerabilidade de desserialização de objetos.

1) Fluxo do ataque usando contaminação Delta no DeepDiff

A primeira requisição é: Exemplo de ataque do Cliente, configuração de contaminação -> Validação de cabeçalho vulnerável em /api/v1/delta do DeepDiff -> Armazenamento de estado através da contaminação configurada.

Descrição da imagem

[Figura 1] POC - Ataque ao Endpoint

Descrição da imagem

[Figura 2] POC - Injeção de Vulnerabilidade / Conteúdo da configuração de contaminação total

Descrição da imagem

[Figura 3] lightning/api/core/api.py / Parte da lógica de verificação de cabeçalho vulnerável

Descrição da imagem

[Figura 4] lightning/api/core/app.py / Seção de configuração

Descrição da imagem

[Figura 5] lightning/api/core/app.py / Seção de salvamento de configuração

A primeira requisição, após contornar a verificação de cabeçalho de /api/v1/delta na [Figura 3] através da [Figura 1], injeta a configuração de contaminação manipulada (delta) [Figura 2] e salva a configuração através das [Figura 4] e [Figura 5]. Agora, vamos ver como essas configurações do delta manipuladas agem na segunda requisição.

Descrição da imagem Descrição da imagem

[Figura 6] lightning/api/core/app.py / Fluxo do caminho inicial


Descrição da imagem

[Figura 7] Caso de contaminação isinstance

Descrição da imagem

[Figura 8] Caso de contaminação isinstance 1

Descrição da imagem

[Figura 9] Caso de contaminação isinstance 2

Descrição da imagem

Descrição da imagem

Descrição da imagem

[Figura 10] Caso de contaminação isinstance 3

Descrição da imagem

[Figura 11_1] Função de verificação _INTERNAL_STATE_VARS em /lightning/app/core/flow.py

Descrição da imagem

[Figura 11_2] __setattr__ em /lightning/app/core/flow.py

Com a [Figura 11] como último passo, a contaminação e configuração geral foram concluídas.

Descrição da imagem

[Figura 12] Comando RCE

Descrição da imagem

Descrição da imagem

[Figura 13] Resposta RCE

Finalmente, na [Figura 13], o exec com privilégios root é chamado para executar o comando da [Figura 12], concluindo o ataque

2) Exemplo resumido de ataque usando contaminação Delta no DeepDiff (esquerda: servidor Lightning App, direita: Cliente)

Descrição da imagem

03. Medidas de mitigação

Até agora, verificamos o fluxo em que a vulnerabilidade RCE através da desserialização de objetos (CVE-2024-5452) é executada no ambiente Lightning. Por ser um método de ataque que compromete o próprio servidor, as medidas de mitigação são importantes. Para isso, recomendamos a atualização para a versão mais recente.

  • Atualização do Lightning

    Se lightning <= 2.2.1, atualize para uma versão lightning >= 2.3.3.
  • Modificação resumida da biblioteca Lightning

    Esta medida é uma forma de bloquear rapidamente em casos inevitáveis, portanto, consulte apenas como referência. Adição de lógica simples no endpoint /api/v1/delta (caminho /lightning/app/core/api) ou fortalecimento da parte de verificação de sessão no topo. depence
  • Detecção e bloqueio via IPS

    O ataque é testado especificando atributos dunder no JSON via Postman. image 20250210_143207

04. Conclusão

Até agora, vimos a vulnerabilidade que causa RCE através da contaminação de atributos Dunder via Lightning e DeepDiff. Essa vulnerabilidade ocorreu primeiro através de uma validação de cabeçalho vulnerável e, em seguida, da desserialização de objetos através de uma verificação vulnerável dos atributos delta.

05. Referências

(poc) https://security.snyk.io/vuln/SNYK-PYTHON-PYTORCHLIGHTNING-7218866
(nist) https://nvd.nist.gov/vuln/detail/CVE-2024-5452

Baixar ferramenta