control-flow hijacking
A memory bug changing where a program jumps next, by overwriting a saved return address or a function pointer, so the program no longer follows its own code paths.
Control-flow hijacking is the corruption of a code pointer (saved return address, function pointer, vtable pointer, GOT entry) so that a later ret, indirect call or indirect jump transfers control to an address the program never intended; the mitigations of this chapter each block one step of it.
See also