In: Computer Science
What properties would make a buffer overflow condition in a program exploitable or useful to an attacker?
Mostly, the buffer overflow condition arises when there is more data being put into the fixed-length buffer than the buffer can able to handle. The adjacent memory space thus becomes corrupted as well as overwritten. When this occurs, that does not considered good as it can leads to system crash and also open a gate for the attackers to run their malicious code. The malicious actors usually take the advantage of this software vulnerability to alter the execution path of the software by overwriting the parts of the memory. The extra data might contains code to perform specific actions and thus in effect sending new instructions to the compromised application which might results into unwanted access to the system. The attackers technique usually vary as per the buffer overflow vulnerability as per OS and architecture.
Stack and Heap buffer overflows are quite common. So, exploiting the buffer overflow on the heap is more challenging than the exploiting the overflow on the stack. The heap buffer overflow are generally exploited by modifying the data and also by modifying the objects.