
Analisi tecnica dettagliata di CVE-2024-5452, una vulnerabilità di esecuzione remota di codice in PyTorch Lightning tramite inquinamento delle proprietà delta di DeepDiff, con proof-of-concept e indicazioni di mitigazione.
La RCE (Remote Code Execution, esecuzione remota di codice) è una vulnerabilità che consente a un attaccante di eseguire codice arbitrario all'interno di un sistema o di un'applicazione da remoto ed è classificata come CWE-94: Improper Control of Generation of Code ('Code Injection').
PyTorch Lightning è una libreria che aiuta a gestire facilmente l'addestramento di modelli di deep learning basati su PyTorch, mentre DeepDiff è una libreria che confronta due oggetti Python e ne analizza le differenze.
CVE-2024-5452 è una vulnerabilità che, nel processo di utilizzo di DeepDiff e Lightning nelle funzionalità dell'applicazione web relative ai pesi dei modelli AI di Lightning, provoca RCE durante la deserializzazione tramite la vulnerabile validazione delle intestazioni di DeepDiff e l'inquinamento delle proprietà delta.
Esamineremo il flusso di codice che porta alla vulnerabilità attraverso cui un attaccante può iniettare oggetti arbitrari o eseguire codice remoto (RCE) e cercheremo possibili contromisure.
[Figura 1] POC - Attacco all'endpoint
[Figura 2] POC - Iniezione della vulnerabilità / contenuto completo della configurazione dell'inquinamento
[Figura 3] lightning/api/core/api.py / parte della logica vulnerabile di controllo dell'intestazione
[Figura 4] lightning/api/core/app.py / sezione di configurazione
[Figura 5] lightning/api/core/app.py / sezione di salvataggio della configurazione