Механізм захисту від переповнення буфера: перед збереженим RIP у стек записується випадкове значення (canary). Перед поверненням з функції значення перевіряється — якщо змінилось, програма завершується з помилкою.
Bypass: витік canary через format string або read-примітив, потім підстановка у payload.
Перевірка: checksec ./binary — показує наявність Stack Canary.