Check out the new USENIX Web site. next up previous
Next: Indirect overflow via pointer Up: Exploitation techniques Previous: Other code pointers

Malloc() overflow

The malloc() overflow [11] exploits the heap memory objects allocated via the memory allocator in the GNU C library. The memory allocated by malloc() not only includes the user requested block but also the data used to manage the heap (size of the block, pointer to other blocks and the like). The vulnerability is that a heap variable can be overflowed to overwrite those management data. Exploits based on this technique can bypass stack-based defensive techniques such as StackGuard, StackShield, Libsafe and Solar Designer's stack patch.