Definición
Un error en el que un programa escribe más datos en un búfer contiguo de memoria de tamaño fijo de los que puede contener, sobrescribiendo memoria adyacente y pudiendo causar fallos, comportamiento incorrecto o brechas de seguridad.

Principio

Principio
Las regiones de memoria asignadas como búferes contiguos tienen límites fijos; escribir fuera de esos límites corrompe la memoria vecina porque el hardware y muchos entornos de ejecución no impiden ni corrigen automáticamente escrituras fuera de rango.

Demostración

Demostración
Una función en C copia una cadena de entrada no validada en un array local de char con strcpy. Si la entrada supera la longitud del array, los bytes se desbordan en el frame de pila adyacente, pudiendo modificar direcciones de retorno o variables y provocar un fallo o ejecución arbitraria de código.

Aplicación incorrecta

Aplicación incorrecta
Atribuir cualquier fallo tras una entrada atípica a un desbordamiento de búfer sin inspeccionar la disposición de memoria, o suponer que los lenguajes gestionados son totalmente inmunes; también pensar que todos los desbordamientos son explotables cuando muchos solo provocan fallos.

Consecuencia

Consecuencia
Si está presente y es explotable, un desbordamiento de búfer puede provocar caídas de la aplicación, corrupción de datos, escalada de privilegios o ejecución remota de código; mitigado correctamente, el código evita la corrupción aleatoria de memoria y reduce la superficie de ataque.

Inversión

Inversión
Comprobaciones explícitas de límites, uso de APIs con límite de longitud, contenedores con comprobación automática de límites o búferes de tamaño dinámico invierten el comportamiento de escritura incontrolada al asegurar que las escrituras permanezcan dentro de la memoria asignada.

Límite

Límite
Abarca escrituras fuera de rango en búferes contiguos (pila, heap, estático). Excluye errores lógicos de estructuras de datos que no escriben fuera de la asignación, desbordamientos enteros que solo cambian valores numéricos (aunque pueden permitir desbordamientos de búfer) y use‑after‑free que son fallos de memoria distintos.

Tensión semántica

Tensión semántica
Se solapa con 'acceso fuera de rango', 'desbordamiento del heap' y 'corrupción de memoria'; la tensión aparece porque 'desbordamiento de búfer' enfatiza escrituras en búferes contiguos mientras términos relacionados subrayan tiempo (race), duración de vida (use‑after‑free) o causas numéricas (desbordamiento entero).

Síntesis

Síntesis
El desbordamiento de búfer es el modo de fallo donde escrituras sin verificación exceden los límites de un búfer asignado, basado en que la memoria está particionada en regiones acotadas; se muestra en operaciones de copia inseguras, frecuentemente mal identificado sin inspección de memoria, con consecuencias de fallo a exploit y resuelto mediante comprobaciones de límites o abstracciones más seguras.