Falhas do tipo CWE-415

362 resultados

Uso após liberação de memória

Ocorre quando o código tenta acessar um bloco de memória que já foi desalocado (free, delete). Após a liberação, aquele endereço pode ser reutilizado pelo sistema ou conter lixo, causando comportamento imprevisível, corrupção de dados ou execução de código arbitrário.

Exemplo

Um ponteiro é liberado com free() e depois o código tenta ler ou escrever nele novamente — por exemplo, chamar um método em um objeto deletado em C++, ou acessar um array após liberar sua memória. Um atacante pode explorar isso alocando novamente aquele espaço com dados maliciosos.

Como mitigar

Use linguagens com garbage collection ou gerenciamento automático de memória (Python, Java, Go). Em C/C++, implemente validação rigorosa de ponteiros, use smart pointers (unique_ptr, shared_ptr), defina ponteiros como nullptr após liberar, e revise fluxos de desalocação em código crítico com ferramentas como AddressSanitizer e Valgrind.