Was ist Pufferüberlauf (Buffer Overflow)?
Schreiben von mehr Daten in einen Bereich wie ein Array (Puffer), als dessen Größe zulässt, wodurch benachbarter Speicher zerstört wird. In C passiert das leicht mit strcpy oder gets, die die Größe des Ziels nicht kennen, oder mit Schleifen, die Indizes ohne Bereichsprüfung verwenden, und es ist undefiniertes Verhalten. Läuft ein Puffer auf dem Stack über, werden lokale Variablen und die Rücksprungadresse der Funktion überschrieben, was für Angriffe missbraucht werden kann, bei denen eine Eingabe von außen beliebigen Code ausführen lässt. Abhilfe schaffen Funktionen mit Größenangabe und Bereichsprüfungen.
Japanische Bezeichnung: バッファオーバーフロー
„Pufferüberlauf (Buffer Overflow)“ kommt in 3 Übungsfragen aus 2 Themen vor, z. B. Linker, Loader und ausführbare Formate, Grundlagen der Programmiersprache C.
Fachgebiet: Grundlagen der Programmiersprache C