Weaknesses of type CWE-763

47 results

Liberação de ponteiro ou referência inválida

Ocorre quando o código tenta liberar (desalocar) um ponteiro ou referência que não aponta para memória alocada dinamicamente, ou que já foi liberada anteriormente. Isso corrompe o heap, causando crashes, vazamento de memória ou execução arbitrária de código.

Example

Uma função recebe um ponteiro como parâmetro e o libera sem verificar se ele é válido ou se já foi desalocado antes. Um atacante passa um endereço inválido ou um ponteiro duplo (double-free) e o programa falha ou se torna explorável.

How to mitigate

Valide ponteiros antes de liberar (verifique se são NULL ou se vieram de alocação própria), use wrappers de alocação que rastreiam memória, adote linguagens com garbage collection, e aplique análise estática de código para detectar double-free e liberações inválidas.