Jde o heap overflow. Doporučuji se nejprve podívat na koncept virtual method table. Jde prakticky o to, že objekty v C++ obsahují pointer na tabulku pointerů na metody. Útočník díky chybě v kódu vedoucí k přepisu vybraného místa paměti nastaví pointer vybrané metody vybraného objektu (například destruktor) tak, aby směřoval na jeho vlastní kód.
https://en.wikipedia.org/wiki/Virtual_method_table
http://www.mathyvanhoef.com/2013/02/understanding-heap-exploiting-heap.html