Saltar al contenido
uencoder

Double Free

Un double free consiste en llamar free dos veces sobre el mismo puntero, corrompiendo los metadatos del heap y posibilitando escrituras arbitrarias o fallos.

Propósito

Entender el daño que un double free inflige al gestor de memoria y sus defensas; un defecto habitual de seguridad de memoria.

Mecanismo

En el segundo free del mismo puntero, el gestor del heap inserta de nuevo el bloque ya liberado en la lista libre, creando ciclos o chunks solapados, de modo que un malloc posterior puede devolver memoria solapada. Defensas: anular el puntero, conteo de referencias.

Casos de uso

  • Análisis de seguridad del heap
  • Auditoría de gestión de memoria
  • Seguridad en C/C++

Herramientas relacionadas

References