Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 1095

Stack Canary

Was ist Stack Canary?

Stack CanaryEin Stack Canary ist ein geheimer Wert zwischen lokalen Puffern und der gespeicherten Rueckkehradresse einer Funktion, um Stack-Overflows zu erkennen, bevor sie den Kontrollfluss kapern.


Stack Canaries wurden 1998 von Crispin Cowan und dem StackGuard-Team eingefuehrt. Es handelt sich um zufaellige Werte, die im Stackframe zwischen den lokalen Variablen und der gespeicherten Rueckkehradresse abgelegt werden. Der Compiler erzeugt Code beim Funktionseinsprung, um den Canary zu setzen, und beim Austritt, um ihn zu pruefen; Abweichungen brechen das Programm ab, bevor die ueberschriebene Rueckkehradresse genutzt wird. Moderne Toolchains aktivieren das via -fstack-protector oder /GS, mit prozess-spezifischem Zufallswert und Terminator-Byte (meist 0x00) gegen Payloads, die den Canary einschliessen. Canaries ergaenzen ASLR, DEP, CFI und memory-safe Sprachen, ersetzen sie aber nicht.

Beispiele

  1. 01

    GCC -fstack-protector-strong fuegt Funktionen mit Arrays einen Canary hinzu.

  2. 02

    MSVC /GS erkennt einen strcpy-basierten Stack-Overflow.

Häufige Fragen

Was ist Stack Canary?

Ein Stack Canary ist ein geheimer Wert zwischen lokalen Puffern und der gespeicherten Rueckkehradresse einer Funktion, um Stack-Overflows zu erkennen, bevor sie den Kontrollfluss kapern. Es gehört zur Kategorie Anwendungssicherheit der Cybersicherheit.

Was bedeutet Stack Canary?

Ein Stack Canary ist ein geheimer Wert zwischen lokalen Puffern und der gespeicherten Rueckkehradresse einer Funktion, um Stack-Overflows zu erkennen, bevor sie den Kontrollfluss kapern.

Wie funktioniert Stack Canary?

Stack Canaries wurden 1998 von Crispin Cowan und dem StackGuard-Team eingefuehrt. Es handelt sich um zufaellige Werte, die im Stackframe zwischen den lokalen Variablen und der gespeicherten Rueckkehradresse abgelegt werden. Der Compiler erzeugt Code beim Funktionseinsprung, um den Canary zu setzen, und beim Austritt, um ihn zu pruefen; Abweichungen brechen das Programm ab, bevor die ueberschriebene Rueckkehradresse genutzt wird. Moderne Toolchains aktivieren das via -fstack-protector oder /GS, mit prozess-spezifischem Zufallswert und Terminator-Byte (meist 0x00) gegen Payloads, die den Canary einschliessen. Canaries ergaenzen ASLR, DEP, CFI und memory-safe Sprachen, ersetzen sie aber nicht.

Wie schützt man sich gegen Stack Canary?

Schutzmaßnahmen gegen Stack Canary kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.

Welche anderen Bezeichnungen gibt es für Stack Canary?

Übliche alternative Bezeichnungen: StackGuard, Stack Cookie, GS Cookie.

Verwandte Begriffe

Siehe auch