Uno de los errores más comunes es el stack smashing (desbordamiento de pila).
La idea del buffer overflow es sencilla: en algunas implementaciones de C es posible corromper la pila de ejecución de un programa escribiendo más allá de los límites de un array declarado automáticamente en una función; esto puede causar que la dirección de retorno de dicha función sea una dirección aleatoria. Esto, unido a permisos de los ficheros ejecutables en Unix hace que el sistema operativo pueda otorgar acceso root a usuarios privilegiados.
Existen multitud de exploits disponibles en ineternet, para casi todas las variantes de Unix y que incluyen el código necesario para ejecutar shells sobre cualquier operativo y arquitectura.