Typical severity: Very High. Likelihood of attack: High. Buffer Overflow attacks target improper or missing bounds checking on buffer operations, typically triggered by input injected by an adversary. As a consequence, an adversary is able to write past the boundaries of allocated buffer regions in memory, causing a program crash or potentially redirection of execution as per the adversaries' choice.
Use a language or compiler that performs automatic bounds checking. | Use secure functions not vulnerable to buffer overflow. | If you have to use dangerous functions, make sure that you do boundary checking. | Compiler-based canary mechanisms such as StackGuard, ProPolice and the Microsoft Visual Studio /GS flag. Unless this provides automatic bounds checking, it is not a complete solution. | Use OS-level preventative functionality. Not a complete solution.