Use-After-Free is a vulnerability that occurs when a program continues to use a memory location after it has been freed, potentially leading to arbitrary code execution or denial of service. This flaw can be exploited by attackers to manipulate program execution by controlling the memory space that was freed, often resulting in severe security implications.