Definition
Ein Fehler, bei dem ein Programm mehr Daten in einen fest großen, zusammenhängenden Speicherpuffer schreibt, als dieser fassen kann, wodurch angrenzender Speicher überschrieben wird und es zu Abstürzen, falschem Verhalten oder Sicherheitslücken kommen kann.

Prinzip

Prinzip
Speicherbereiche, die als zusammenhängende Puffer angelegt sind, haben feste Grenzen; Schreibzugriffe darüber hinaus führen zu Speicherkorruption, weil Hardware und viele Laufzeitumgebungen Out‑of‑Bounds‑Schreibzugriffe nicht automatisch verhindern oder korrigieren.

Demonstration

Demonstration
Eine C‑Funktion kopiert einen unvalidierten Eingabestring mit strcpy in ein lokales char‑Array. Überschreitet die Eingabelänge die Array‑Größe, laufen Bytes in benachbarte Stack‑Frames und können Rücksprungadressen oder Variablen verändern, was zu Absturz oder Ausführung beliebigen Codes führen kann.

Fehlanwendung

Fehlanwendung
Jeden Programmfehler nach ungewöhnlicher Eingabe als Pufferüberlauf zu deuten, ohne die Speicheranordnung zu prüfen, oder anzunehmen, verwaltete Sprachen seien vollständig immun; außerdem irrtümlich anzunehmen, dass alle Überläufe ausnutzbar sind, obwohl viele bloß abstürzen.

Konsequenz

Konsequenz
Ist ein Pufferüberlauf vorhanden und ausnutzbar, kann er zu Programmabsturz, Datenkorruption, Privilegieneskalation oder Remote‑Code‑Execution führen; richtige Absicherung verhindert zufällige Speicherkorruption und verkleinert die Angriffsfläche.

Umkehrung

Umkehrung
Explizite Grenzprüfungen, die Verwendung von längenbegrenzten APIs, automatisch bounds‑geprüfte Container oder dynamisch skalierende Puffer verhindern unkontrollierte Schreibvorgänge, indem sie Schreibzugriffe innerhalb der zugewiesenen Speichergrenzen erzwingen.

Abgrenzung

Abgrenzung
Bezieht sich auf Out‑of‑Bounds‑Schreibzugriffe in zusammenhängenden Puffern (Stack, Heap, statisch). Schließt logische Datenstrukturfehler ohne Überschreitung der Allokation aus, ebenso Ganzzahlüberläufe, die nur numerische Werte ändern (auch wenn sie Pufferüberläufe ermöglichen können), sowie use‑after‑free‑Fehler.

Semantische Spannung

Semantische Spannung
Überlappt mit 'Out‑of‑Bounds‑Access', 'Heap‑Overflow' und 'Memory‑Corruption'; die Spannung entsteht, weil 'Pufferüberlauf' die stufenartige Pufferstruktur betont, während verwandte Begriffe eher Zeitverhalten (Race), Lebenszeitprobleme (Use‑after‑free) oder numerische Ursachen (Integer‑Overflow) hervorheben.

Synthese

Synthese
Ein Pufferüberlauf ist der Fehlermodus, bei dem ungeprüfte Schreibzugriffe die zugewiesenen Grenzen eines Puffers überschreiten; begründet durch die Partitionierung des Speichers, praktisch sichtbar bei unsicheren Kopieroperationen, oft fehlinterpretiert ohne Speicheranalyse, mit Folgen von Absturz bis Exploit und zu beheben durch Grenzprüfungen oder sichere Abstraktionen.