La deserializzazione non sicura si verifica quando il software accetta dati serializzati da una fonte non fidata e li riconverte in oggetti senza sufficiente convalida. Formati di serializzazione come JSON, XML o codifiche binarie vengono spesso usati per trasferire lo stato tra client, servizi e server. Se l'applicazione si fida troppo di quei dati, un aggressore può manipolare i campi, attivare comportamenti imprevisti degli oggetti o raggiungere percorsi di codice pericolosi.
Questo è importante perché i bug di deserializzazione possono portare all'esecuzione di codice remoto, all'escalation dei privilegi, alla corruzione dei dati o al denial of service. Negli attacchi reali, l'aggressore di solito ha bisogno di un modo per fornire dati creati ad arte tramite una API, un caricamento di file, una coda di messaggi o un token di sessione. I difensori riducono il rischio evitando la deserializzazione non sicura degli oggetti, usando schemi rigorosi e allowlist, convalidando l'input prima dell'analisi e eseguendo i servizi con privilegi minimi. Nel software di control-plane, dove il server gestisce distribuzioni o configurazioni, una singola vulnerabilità di deserializzazione può avere un ampio impatto operativo.


