Il dirottamento del flusso di controllo è un esito di sfruttamento in cui un attaccante reindirizza l'esecuzione di un programma lontano dal suo percorso previsto. Anziché raggiungere la successiva istruzione legittima, il codice può saltare verso dati influenzati dall'attaccante, un indirizzo di ritorno corrotto, un puntatore a funzione falso o un altro obiettivo non sicuro. Ciò può accadere dopo bug di corruzione della memoria come use-after-free, overflow del buffer o scritture fuori dai limiti.
È importante perché le difese moderne sono progettate per proteggere i dati di controllo: i canary dello stack, la memoria non eseguibile, l'integrità del flusso di controllo e l'hardening del kernel cercano tutti di fermare o limitare questo tipo di compromissione. Negli attacchi reali, il dirottamento del flusso di controllo è spesso il passaggio che trasforma un crash in esecuzione di codice o escalation dei privilegi. Nei bug del kernel, la posta in gioco è ancora più alta, perché un dirottamento riuscito può influire sul codice fidato del sistema e potenzialmente bypassare i confini di sicurezza dello spazio utente.


