Exploitation is performed by corrupting this data in specific ways to cause the application to overwrite internal structures such as linked list pointers.
An accidental overflow may result in data corruption or unexpected behavior by any process that accesses the affected memory area.
For example, a Microsoft JPEG GDI+ buffer overflow vulnerability could allow remote execution of code on the affected machine.
Since version 2.3.6 the GNU libc includes protections that can detect heap overflows after the fact, for example by checking pointer consistency when calling unlink.
This method observes the runtime execution of programs to identify vulnerabilities through the detection of security breaches.