
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.
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.
[Figura 1] POC - Ataque ao Endpoint
[Figura 2] POC - Injeção de Vulnerabilidade / Conteúdo da configuração de contaminação total
[Figura 3] lightning/api/core/api.py / Parte da lógica de verificação de cabeçalho vulnerável
[Figura 4] lightning/api/core/app.py / Seção de configuração
[Figura 5] lightning/api/core/app.py / Seção de salvamento de configuração