Copia de datos
Una de las vulnerabilidades más sencillas de ver a simple vista está relacionada con la copia de datos a búferes con funciones como strcpy, sin control del tamaño de la copia.
Arriba vemos parte del código vulnerable del servidor IMAP de la Universidad de Washington, el cual fue corregido en 1998. Vemos que nunca se comprueba el tamaño de los datos en mechanism antes de hacer la copia a tmp, lo cual puede llevar al desbordamiento del búfer. El error se resuelve fácilmente con una comprobación de strlen(mechanism) antes de la copia, o con el uso de funciones de copia de n bytes, como strncpy.
Como podrás imaginar, es muy difícil que hoy en día se encuentre este tipo de vulnerabilidades en aplicaciones de código abierto y, de existir, son rápidamente corregidas.