F FabGPT-FAQ

Quali rischi di Arbitrary Code Execution comporta il caricamento di modelli serializzati in formato Pickle (.bin, .pt) rispetto a SafeTensors (.safetensors)?

AI e LLM 1 min lettura Runbook verificato

Il formato legacy Pickle (.bin, .pt di PyTorch) serializza sia i pesi tensoriali sia lo stato dell'interprete Python: durante la deserializzazione con torch.load(), il bytecode esegue la funzione __reduce__(), consentendo a un attaccante di iniettare ed eseguire codice arbitrario (RCE) sul sistema host con i privilegi del processo di inferenza.

Il formato SafeTensors (.safetensors), sviluppato da Hugging Face:

1. Zero codice eseguibile: memorizza esclusivamente un header JSON con i metadati dei tensori e i buffer binari raw, senza alcun interprete di codice.
2. Zero-Copy memory mapping: usa mmap per mappare i pesi direttamente dallo storage alla RAM/VRAM della GPU, abbattendo la latenza di caricamento e prevenendo overflow.
3. Ispezione deterministica: consente di verificare dimensioni, tipi di dato (float16, bfloat16) e hash SHA-256 dei tensori prima del caricamento in memoria.

Hai una domanda specifica su questo tema?

Interroga direttamente il motore FabGPT-FAQ con risposta in tempo reale.