La definizione la trovi su wikipedia.
Vuoi un esempio di un exploit? Eccoti servito un Buffer overflow:
#include <stdio.h>
#include <string.h>
int main (int argc, char **argv)
{
  int test=0;
  char buff[20];
  if (argc>1)
  {
	strcpy (buff, argv[1]); 
	printf ("buff=\'%s\'\ttest=%d\n",buff,test);
  }
  else
	printf ("Missing parameter\n");
  
  return 0;
}
Esecuzione:
max@studio:~> ./exploit 
Missing parameter
max@studio:~>
max@studio:~> ./exploit AAAA
buff='AAAA'     test=0
max@studio:~> 
max@studio:~> ./exploit 12345678901234567890123456789
buff='12345678901234567890123456789'    test=57
max@studio:~>