CyberGlossary

Vulnerabilidades

Desbordamiento de búfer

También conocido como: Buffer overrun

Definición

Fallo de seguridad de memoria en el que un programa escribe más allá del final de un búfer asignado, corrompiendo memoria adyacente y a menudo permitiendo ejecución de código.

Los desbordamientos de búfer ocurren cuando, en lenguajes como C o C++, no se acotan correctamente las longitudes de entrada frente al tamaño del búfer de destino. Los bytes adicionales sobrescriben tramas de pila, bloques de heap, punteros a funciones o direcciones de retorno cercanas, permitiendo secuestrar el flujo de control o filtrar datos. Los desbordamientos de pila clásicos sustentan muchos exploits históricos y los de heap siguen siendo comunes hoy. Las mitigaciones modernas incluyen canarios de pila, ASLR, DEP/NX, integridad del flujo de control, funciones libc más seguras, fuzzing y, cada vez más, el uso de lenguajes seguros como Rust. Se catalogan bajo CWE-119 y aparecen en los listados OWASP y SANS.

Ejemplos

  • CVE-2014-0160 (Heartbleed): desbordamiento de lectura de memoria en OpenSSL.
  • El gusano de Morris (1988) explotó un desbordamiento de pila en fingerd.

Términos relacionados