Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 391

Doble liberación

Revisado porCybersecurity entrepreneur & security researcher

¿Qué es Doble liberación?

Doble liberaciónFallo de memoria en el que el mismo bloque del heap se libera dos veces, corrompiendo metadatos del asignador y a menudo permitiendo ejecución de código arbitraria.


Una doble liberación ocurre cuando free()/delete se llama más de una vez sobre el mismo puntero. Las listas libres o bins del asignador quedan inconsistentes, lo que permite al atacante forzar a una siguiente asignación a devolver memoria influida o solapada con objetos vivos: una primitiva que puede conducir a escrituras arbitrarias y ejecución de código. Se sigue como CWE-415 y suele coexistir con use-after-free y double-fetch. Defensas: patrones de propiedad única (RAII, smart pointers), poner punteros a NULL tras liberar, asignadores endurecidos con detección de doble free (protección de tcache en glibc, scudo), pruebas con AddressSanitizer y lenguajes seguros en memoria.

Ejemplos

  1. 01

    CVE-2015-1322: double free en tcache de glibc que provoca corrupción de heap.

  2. 02

    CVE-2019-19377: double free en btrfs de Linux disparado por imágenes malformadas.

Preguntas frecuentes

¿Qué es Doble liberación?

Fallo de memoria en el que el mismo bloque del heap se libera dos veces, corrompiendo metadatos del asignador y a menudo permitiendo ejecución de código arbitraria. Pertenece a la categoría de Vulnerabilidades en ciberseguridad.

¿Qué significa Doble liberación?

Fallo de memoria en el que el mismo bloque del heap se libera dos veces, corrompiendo metadatos del asignador y a menudo permitiendo ejecución de código arbitraria.

¿Cómo defenderse de Doble liberación?

Las defensas contra Doble liberación combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.

¿Cuáles son otros nombres para Doble liberación?

Nombres alternativos comunes: Vulnerabilidad de double free.

Términos relacionados