Estado de vulnerabilidad que se crea por métodos de codificación poco seguros, y en el que un programa desborda el límite del buffer (búfer) y escribe datos en el espacio de memoria adyacente. Los desbordamientos de buffer son aprovechados por los atacantes para obtener acceso no autorizado a los sistemas o datos.
En relación con la programación y seguridad informática, es un tipo de vulnerabilidad que afecta al software y es muy utilizada para realizar ataques dirigidos a conseguir que el programa realice las acciones que el atacante, y no el propio programa, quiera. Son defectos en la programación que provocan un error o el cuelgue del sistema pero son provocados de forma intencionada.
Si hiciéramos una comparación, el desbordamiento de búfer provoca algo similar a lo que ocurre cuando llenamos un vaso mas allá de su capacidad: éste se desborda y el contenido se derrama. Cuando el programador no incluye las medidas necesarias para comprobar el tamaño del búfer en relación con el volumen de datos que tiene que alojar, se produce también el derramamiento de estos datos que se sobrescriben en otros puntos de la memoria, lo cual puede hacer que el programa dé errores o incluso se cuelgue.
El atacante calcula qué cantidad de datos necesita enviar para conseguir saber cuándo se producirá el desbordamiento y dónde se reescribirán los datos y posteriormente consigue el desbordamiento, en definitiva, que el programa ejecute el código que él ha enviado.
Este tipo de vulnerabilidad, dado que se produce por un defecto en el código del programa, sólo puede ser solventada mediante las actualizaciones o parches del programa en cuestión, lo cual hace muy necesario mantener actualizados todos los programas instalados en nuestro equipo.