A buffer is a temporary data storage area shared by hardware or program processes. The buffer regulates the amount of data moving in and out of the hardware or process so it can operate at maximum efficiency.
A buffer overflow occurs when a program or process tries to store more data than it can hold and data overflows into an adjacent buffer, which can corrupt data values, overwrite the data, cause the system to crash or become unstable, or initiate the execution of malicious code.
Attackers exploit buffer overflow problems by injecting new commands into the code and releasing those commands to the infected computer. Buffer overflow attacks are difficult to identify and fix since much of the software written today includes millions of lines of code.
Certain programming languages—C/ C++, Fortran, and Assembly—do not include overwriting protection. Programmers should use languages that automatically perform bounds checking, and use safe library functions that are bounds checked. Regular security scanning and testing can also help highlight potential overflow vulnerabilities.
Get the DeMISTIfying InfoSec newsletter every Tuesday!