CyberGlossary

Vulnerabilidades

Desbordamiento de heap

También conocido como: Heap buffer overflow

Definición

Desbordamiento de búfer en memoria dinámica que suele corromper metadatos del asignador, punteros a funciones o tablas virtuales de objetos.

Un desbordamiento de heap escribe más allá del final de un búfer en memoria dinámica, dañando bloques adyacentes o metadatos del asignador (malloc/free, jemalloc, mimalloc…). Como los layouts del heap no son deterministas, la explotación recurre a técnicas de "heap grooming" o "feng shui" para colocar objetivos útiles junto al búfer vulnerable: punteros a funciones, vtables, bloques de control de smart pointers o estado crítico. Los asignadores modernos endurecen metadatos, aíslan bloques y añaden páginas guardia; ASLR, CFI, sandboxing y los lenguajes seguros en memoria reducen el impacto. Los heap overflows son centrales en la explotación de navegadores, kernels y parsers de documentos, incluyendo muchas entradas premiadas en Pwn2Own.

Ejemplos

  • CVE-2018-4407: desbordamiento de heap TCP en el kernel XNU.
  • Numerosos overflows de heap en el motor JS de Chrome explotados en Pwn2Own.

Términos relacionados