Stack smashing is a type of buffer overflow vulnerability where an attacker overwrites the call stack of a program, potentially allowing arbitrary code execution. It exploits the lack of bounds checking in memory operations, often targeting the return address to redirect program execution flow.