CyberGlossary

Vulnerabilidades

Uso después de liberar

También conocido como: UAF

Definición

Fallo de memoria en el que un programa sigue usando memoria ya liberada, lo que suele permitir controlar el estado de objetos y secuestrar la ejecución.

Un "use-after-free" (UAF) ocurre cuando un puntero sigue refiriendo a un objeto tras un free()/delete. Si el atacante logra que esa zona se reasigne como otro objeto, el puntero colgante actúa como una confusión de tipos perfecta para sobrescribir punteros virtuales, direcciones de callback o estado sensible. Los UAF dominan la explotación de navegadores y kernels (CWE-416). Las defensas incluyen modelos disciplinados de propiedad (RAII, smart pointers), lenguajes con recolección de basura o seguros en memoria, asignadores endurecidos (cuarentena, pools aislados, GWP-ASan) y pruebas con KASAN/Valgrind. Los navegadores despliegan además guardas como MiraclePtr y PartitionAlloc.

Ejemplos

  • CVE-2018-8174 (motor VBScript): UAF explotado por actores APT.
  • CVE-2022-0609 (animación de Chrome): UAF usado como 0-day.

Términos relacionados