The most common security hole, frequently exploited by hackers. It occurs when more data is sent to an input buffer than it can hold. For properly-coded programs that are compiled with memory protection or check for overflow character-by-character, this is not a problem. However, vulnerable programs frequently crash upon buffer overflows. Exploit code left on the memory stack is subsequently executed under the program's process ID. In other words, the hacker can hijack the permissions of the program and use them to execute new commands.
This happens when more data is put into a buffer or holding area, then the buffer can handle. This is due to a mismatch in processing rates between the producing and consuming processes. This can result in system crashes or the creation of a back door leading to system access.
A programming mistake in which the length and content of incoming data is not verified and overwhelms the program. This is the most common avenue for hackers to break into software.