Ein Buffer Overflow (Pufferüberlauf) wird durch Fehler im Programm ausgelöst. Dabei kann das Programm dazu gebracht werden, mehr Daten als vorgesehen in eine Datenstruktur (z.B. ein Puffer zur temporären Datenspeicherung) im Hauptspeicher (RAM) zu schreiben. Die überschüssigen Daten können so angrenzende Datenstrukturen überschreiben und ungewollte Änderungen im Speicherinhalt oder auch Programmablauf verursachen. Buffer Overflow Probleme treten normalerweise nur bei Programmen auf, die in Programmiersprachen mit direktem Speicherzugriff (z.B. C) geschrieben wurden. Ein verwandtes Problem ist Buffer Over-Read, bei dem mehr Daten als vorgesehen gelesen werden können und so interne Informationen des Programms sichtbar werden. Ein Beispiel dieser Variante ist der bekannte sogenannte Heartbleed Bug bei OpenSSL.