
Exploit proof-of-concept per CVE-2025-32434, una vulnerabilità di deserializzazione pickle nella modalità weights_only di PyTorch, che dimostra la generazione e l'esecuzione di file tar malevoli.
Il punto di ingresso della vulnerabilità è load() in torch/serialization.py
quando la protezione (weights_only) è abilitata: il caricamento di un file tar chiamerebbe queste funzioni in catena:
load(): torch/serialization.py:1117_load_legacy(): torch/serialization.py:1376 a torch/serialization.py:1406persistent_load(): torch/serialization.py:1474pickle_moudle.load(): torch/serialization.py:1487Unpickler.load(): torch/_weights_only_unpickler.py:214Nella modalità weights_only_unpickler, si tratta di deserializzazione pickle, quindi la ricerca del protocollo pickle può aiutare. riferimento: https://rushter.com/blog/pickle-serialization-internals/
Questo POC prima genera un file tar malizioso, notare che il nome del file "storages" è richiesto da pytorch, poi carica il file tar per attivare la vulnerabilità.
Ora il file tar è eseguibile in modalità non sicura. Il passo successivo è abilitare la protezione di sicurezza e bypassare la verifica in questo modo:
_pickle.UnpicklingError: Unsupported global: GLOBAL __builtin__.eval was not an allowed global by default. Please use `torch.serialization.add_safe_globals([eval])` to allowlist this global if you trust this class/function.