¿Qué es Use-After-Free?
UAF
Es una vulnerabilidad de seguridad que surge cuando un programa intenta acceder a una zona de memoria después de que esta ha sido liberada.
Definición
Use-after-free ocurre cuando, durante la gestión de memoria, un puntero sigue apuntando a una dirección de memoria después de que la estructura de datos ha sido eliminada o liberada. Que el programa lea o escriba en esta dirección no válida provoca bloqueos inesperados o la ejecución de código malicioso. Los lenguajes que verifican la seguridad de la memoria en tiempo de compilación, como Rust, están diseñados específicamente para prevenir este tipo de errores.
Cómo funciona
El programador o el gestor de memoria libera un bloque de memoria, pero no restablece la variable que apunta a dicho bloque. Cuando el programa intenta realizar una operación utilizando este puntero pasivo en pasos posteriores, se produce un error de memoria.
Dónde se usa
Se observa con frecuencia en lenguajes de programación de sistemas que requieren gestión manual de memoria, como C y C++, en vulnerabilidades analizadas y en análisis de fallos.
Suele confundirse con
Mientras que la vulnerabilidad de fuga de memoria (memory leak) ocurre cuando no se libera la memoria no utilizada, use-after-free consiste en la reutilización incorrecta de la memoria ya liberada.
Preguntas y respuestas
¿Cómo se previene esta vulnerabilidad?
Se previene restableciendo los punteros inmediatamente después de liberar la memoria o prefiriendo lenguajes que proporcionen seguridad de memoria.
¿Permite esta vulnerabilidad la ejecución remota de código?
Sí, los atacantes pueden escribir sus propios datos en el área de memoria liberada para controlar el flujo de ejecución.
Términos relacionados
Esta explicación se redactó en lenguaje sencillo para TreScout con IA y se tradujo automáticamente del original en turco · prevalece la versión turca. Si algo le parece erróneo o incompleto, escriba a hello@trescout.com. Leer en turco →