CyberGlossary

Vulnerabilidades

Fuga de memoria

También conocido como: Fuga de recursos

Definición

Defecto en el que memoria que ya no se necesita no se devuelve al asignador, agotando progresivamente la memoria disponible y degradando o bloqueando el sistema.

Una fuga de memoria (CWE-401) ocurre cuando un programa reserva memoria y pierde todas las referencias a ella sin liberarla. Con el tiempo el conjunto de trabajo crece, el rendimiento cae, el swap se satura y, finalmente, el sistema operativo mata el proceso o deja de aceptar trabajo. Aunque muchas fugas son problemas de fiabilidad, pueden volverse de seguridad: servicios de larga ejecución expuestos a desencadenantes controlados por el atacante se convierten en amplificadores de denegación de servicio. También se incluyen objetos de kernel, descriptores, sockets o recursos GPU sin liberar. Defensas: perfilado (Valgrind, ASan/LSan, heaptrack), disciplina de propiedad (RAII, smart pointers), pruebas de carga continuas y recolección de basura en el lenguaje. La "fuga de memoria" en sentido criptográfico (revelar contenido de memoria) se llama mejor divulgación de información.

Ejemplos

  • Servidor web de larga ejecución cuyas asignaciones por petición nunca se liberan.
  • Módulo de kernel que olvida liberar buffers skb y drena la memoria del sistema.

Términos relacionados