
Análisis técnico detallado de CVE-2024-5452, una vulnerabilidad de ejecución remota de código en PyTorch Lightning mediante la contaminación de la propiedad delta de DeepDiff, con prueba de concepto y guía de mitigación.
RCE (Remote Code Execution, ejecución remota de código) es una vulnerabilidad que permite a un atacante ejecutar código arbitrario de forma remota dentro de un sistema o aplicación, y corresponde a CWE-94: Improper Control of Generation of Code ('Code Injection').
PyTorch Lightning es una librería que facilita la gestión del entrenamiento de modelos de deep learning basados en PyTorch, y DeepDiff es una librería que compara dos objetos de Python para analizar sus diferencias.
CVE-2024-5452 es una vulnerabilidad que, en las funciones de la aplicación web relacionadas con los pesos de los modelos de IA de Lightning, al utilizar DeepDiff y Lightning, provoca una RCE durante la deserialización mediante la validación deficiente de cabeceras de DeepDiff y la contaminación de atributos delta.
Por ello, examinaremos el flujo de código que genera la vulnerabilidad que permite a un atacante inyectar objetos arbitrarios o ejecutar código remoto (RCE), y buscaremos medidas de mitigación.
[Figura 1] POC - Ataque al endpoint
[Figura 2] POC - Inyección de vulnerabilidad / Contenido completo de la configuración de contaminación
[Figura 3] lightning/api/core/api.py / Parte de la lógica de validación deficiente de cabeceras
[Figura 4] lightning/api/core/app.py / Sección de configuración
[Figura 5] lightning/api/core/app.py / Sección de guardado de configuración