O que é use-after-free?
Use-after-free é um tipo de bug em que um programa tenta usar um espaço da memória do computador depois de já ter devolvido esse espaço para outro uso. Isso pode causar travamentos e, em certos casos, abrir brecha para invasões.
Na prática, programas pedem memória ao sistema para guardar dados enquanto funcionam e, quando não precisam mais dela, devem avisar que ela está livre. Se o programa esquece essa liberação e continua mexendo naquele endereço, ele pode ler ou alterar informações que já pertencem a outra parte do código, o que costuma gerar comportamentos estranhos ou travamentos. Esse erro é comum em linguagens que exigem gerenciamento manual de memória, como C e C++, e é um alvo frequente em navegadores, que processam muito conteúdo externo ao mesmo tempo.
Uma analogia simples é pensar em um armário de um hotel: o hóspede devolve a chave do quarto na recepção, que entrega o quarto para outra pessoa, mas o primeiro hóspede continua usando a chave para entrar e mexer nas coisas que agora são de outro. O problema é que quem entra no quarto pode encontrar algo que não esperava ou causar confusão para quem ocupa o espaço de verdade.
Esse tipo de falha importa porque um atacante habilidoso pode, em alguns cenários, manipular a memória para executar código não autorizado. Por isso os fabricantes de navegadores e de sistemas lançam atualizações de segurança com frequência. Para se proteger, o caminho mais simples é manter o navegador e o sistema sempre atualizados e instalar as correções assim que forem disponibilizadas.