El lenguaje de programación C, utilizado en la mayoría de Linux, hace que el introducir errores sea fácil y muchos problemas de seguridad suelen deberse a que los desarrolladores olvidan controlar cuánta información es almacenada en una porción asignada de memoria (buffer), derivando en errores de sobreescritura de memoria que podrían ser utilizados por un usuario malicioso para alterar la memoria del núcleo y sus módulos.