Stack smashing, также известный как stack buffer overflow — вид атаки, при которой злоумышленник эксплуатирует уязвимость в стеке вызова программы, чтобы выполнить злонамеренный код.
Стек вызова — это область памяти, которую программа использует для хранения временной информации, такой как переменные функций и возвращаемые адреса. Когда функция завершается, программа возвращает управление обратно по адресу, хранящемуся в стеке.
При атаке "stack smashing" злоумышленник переполняет буфер, превышая его пределы и перезаписывая другие области стека. Это позволяет заменить возвращаемый адрес на адрес своего злонамеренного кода, так он сможет контролировать выполнение программы.