CyberGlossary

Schwachstellen

Pufferüberlauf

Auch bekannt als: Buffer Overrun

Definition

Speicher-Sicherheitslücke, bei der ein Programm über das Ende eines allokierten Puffers hinausschreibt, benachbarten Speicher überschreibt und häufig Codeausführung ermöglicht.

Pufferüberläufe entstehen in Sprachen wie C oder C++, wenn Eingabelängen nicht ordnungsgemäß gegen die Zielpuffergröße geprüft werden. Überschüssige Bytes überschreiben benachbarte Stack-Frames, Heap-Chunks, Funktionspointer oder Rücksprungadressen, sodass Angreifer den Kontrollfluss kapern oder Daten abziehen können. Klassische Stack-Überläufe stehen hinter vielen historischen Exploits, Heap-Überläufe bleiben aktuell sehr verbreitet. Moderne Gegenmaßnahmen umfassen Stack-Canaries, ASLR, DEP/NX, Control-Flow Integrity, sichere libc-Funktionen, Fuzz-Testing und zunehmend den Wechsel zu speichersicheren Sprachen wie Rust. Sie sind unter CWE-119 katalogisiert und Dauergäste in OWASP- und SANS-Listen.

Beispiele

  • CVE-2014-0160 (Heartbleed): Speicherlesefehler in OpenSSL.
  • Morris-Wurm (1988) nutzte einen Stack-Überlauf in fingerd.

Verwandte Begriffe