
Proof-of-concept exploit per CVE-2025-32434, una RCE critica in torch.load() di PyTorch che bypassa weights_only=True tramite la scrittura di file mappati in memoria.
CVE-2025-32434 è una vulnerabilità critica di esecuzione di codice remoto (RCE) in PyTorch, una libreria Python ampiamente utilizzata per il deep learning e le reti neurali.
La vulnerabilità risiede nella funzione torch.load(), anche quando viene utilizzato il parametro apparentemente sicuro weights_only=True. L'opzione weights_only=True è stata progettata per impedire l'esecuzione di codice limitando il caricamento ai soli parametri del modello. Tuttavia, i ricercatori hanno trovato un modo per aggirare questa protezione.
| Stato | Versione |
|---|---|
| Vulnerabile | PyTorch 2.5.1 e tutte le versioni precedenti |
| Corretto | PyTorch 2.6.0 e successive |
Un utente malintenzionato non autenticato può creare un file modello malevolo che esegue codice arbitrario quando viene caricato da una vittima. L'attacco non richiede alcuna interazione dell'utente e può portare al completo compromesso del sistema. La vulnerabilità sfrutta il modo in cui PyTorch utilizza la serializzazione pickle di Python, consentendo agli attaccanti di incorporare codice malevolo nei file del modello.
Questa vulnerabilità è particolarmente pericolosa perché molti sviluppatori si affidano a weights_only=True come misura di sicurezza, ma questa vulnerabilità dimostra che anche l'opzione "sicura" non è sufficiente.
Lo script fornito full.py mostra come creare un modello PyTorch malevolo che scrive sul filesystem quando viene caricato.
torch.from_file() per creare un tensore mappato in memoria che punta al file cron di destinazione# 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
Questa guida fornisce istruzioni passo passo su come utilizzare lo script proof of concept (PoC) per CVE-2025-32434.
Prima di iniziare, assicurati di avere:
# Install PyTorch (vulnerable version for testing)
pip install torch==2.5.1
pip install torch