O que é Use-After-Free?
UAF
É uma vulnerabilidade de segurança que surge quando o programa tenta aceder a uma área de memória após esta ter sido libertada.
Definição
O use-after-free ocorre quando, durante a gestão de memória, uma estrutura de dados é eliminada ou libertada, mas o ponteiro continua a apontar para esse endereço. A leitura ou escrita do programa neste endereço inválido leva a falhas inesperadas ou à execução de código malicioso. Linguagens como o Rust, que verificam a segurança de memória em tempo de compilação, foram especialmente concebidas para prevenir este tipo de erros.
Como funciona
O programador ou gestor de memória liberta um bloco de memória, mas não redefine a variável que aponta para esse bloco. Quando o programa tenta efetuar uma operação nos passos seguintes utilizando este ponteiro pendente, ocorre um erro de memória.
Onde é usado
É frequentemente observado em linguagens de programação de sistemas que requerem gestão manual de memória, como C e C++, em vulnerabilidades detetadas e em análises de fragilidades.
Costuma ser confundido com
Enquanto a vulnerabilidade de memory leak ocorre quando a memória não utilizada não é libertada, o use-after-free consiste na reutilização incorreta de memória já libertada.
Perguntas e respostas
Como prevenir esta vulnerabilidade de segurança?
Pode ser evitada redefinindo os ponteiros imediatamente após a libertação da memória ou preferindo linguagens que garantam a segurança de memória.
Esta falha permite a execução remota de código?
Sim, os atacantes podem controlar o fluxo escrevendo os seus próprios dados na área de memória libertada.
Termos relacionados
Esta explicação foi escrita em linguagem simples para a TreScout com IA e traduzida automaticamente do original em turco · a versão turca é a que vale. Se algo parecer errado ou faltando, escreva para hello@trescout.com. Ler em turco →