A common vulnerability in memory-unsafe programs. Occurs when the program attempts to access memory already freed. Can lead to future exploitation, Memory Disclosure or Metadata Corruption
Example
int main(){
char *user_input = malloc(8);
scanf("%7s", user_input);
free(user_input);
long *authenticated = malloc(8);
*authenticated = 0;
scanf("%7s", user_input);
if(*authenticated) printf("WIN!");
}