Use-After-Free (UAF) occurs when a program continues using a pointer after the memory has been freed, letting an attacker substitute data or gain code execution.
Common in C/C++ and browsers. Often combined with heap spray.