Un fuzzer è un software di test automatizzato che invia a un programma grandi quantità di input insoliti, malformati o variati casualmente per provocare crash, blocchi, errori di memoria e altri bug nascosti. Anziché verificare un singolo caso atteso alla volta, il fuzzing esplora il comportamento del software sotto stress e in condizioni limite.
Nella sicurezza informatica, i fuzzer sono uno dei modi più efficaci per trovare vulnerabilità prima degli aggressori. Sono ampiamente usati contro browser, parser di file, librerie multimediali e servizi di rete perché questi componenti elaborano dati non affidabili su larga scala. I team di sicurezza usano il fuzzing per individuare problemi come buffer overflow, bug di use-after-free e difetti logici dei parser. Anche gli aggressori possono eseguire il fuzzing dei bersagli per mappare i punti deboli e trasformare i crash in exploit affidabili. Buone difese si basano su fuzzing continuo, triage dei crash e applicazione delle patch, soprattutto per codice complesso come i browser web, dove un singolo percorso di input può esporre una vasta superficie di attacco.


