Przepełnienie bufora () – błąd programistyczny polegający na zapisaniu do wyznaczonego obszaru pamięci (bufora) większej ilości danych niż zarezerwował na ten cel programista. Taka sytuacja prowadzi do zamazania danych znajdujących się w pamięci bezpośrednio za buforem, a w rezultacie do błędnego działania programu. Gdy dane, które wpisywane są do bufora, podlegają kontroli osoby o potencjalnie wrogich intencjach, może dojść do nadpisania struktur kontrolnych programu w taki sposób, by zaczął on wykonywać operacje określone przez atakującego.

Przyczyną powstawania takich błędów jest najczęściej brak odpowiedniej wiedzy lub należytej staranności ze strony autora oprogramowania.

Prawdopodobnie pierwsze wykorzystanie błędu, zostało użyte przez Roberta Morrisa przy tworzeniu pierwszego robaka internetowego.

Szczegóły techniczne Ze względu na sposób budowy stosu na większości platform teleinformatycznych za podręcznymi buforami danej funkcji często znajduje się adres powrotny funkcji nadrzędnej, odłożony na stos przez wywołanie instrukcji procesora call.