The classic malloc overflow, of overwriting pointers in a free chunk, to cause free() unlink to overwrite an arbitrary location with an arbitrary value, is no longer possible with modern glibc (although, other, more complicated attacks are possible), due to various security checks.

What are these checks, how do they work, and where are they implemented? Do they make the classic unlink technique never work, or are there cases where it does?


  1. http://phrack.org/issues/57/8.html#article
  2. https://dl.packetstormsecurity.net/papers/attack/MallocMaleficarum.txt
  3. http://phrack.org/issues/66/10.html


You must log in to answer this question.

Browse other questions tagged .