Il buffer overflow o buffer overrun è un errore informatico che si verifica quando un programma tenta di scrivere più dati di quelli che un buffer può contenere. Questo sovraccarico di dati può causare la scrittura in aree adiacenti della memoria, come lo stack, dove risiedono gli indirizzi delle istruzioni e le variabili necessarie per il funzionamento del programma.
Quando un buffer overflow si verifica, il programma può comportarsi in modo imprevedibile, eseguire codice dannoso, o provocare il crash del sistema. Questa vulnerabilità è comunemente sfruttata per compromettere la sicurezza di un sistema, consentendo a un attaccante di eseguire codice arbitrario.