Weaknesses of type CWE-822
216 resultsDesreferência de ponteiro não validado
O código desreferencia um ponteiro sem verificar se ele é válido, nulo ou aponta para memória acessível. Isso ocorre quando dados externos (entrada do usuário, rede, arquivo) são usados diretamente como endereço de memória, permitindo leitura ou escrita em regiões arbitrárias e causando crash, vazamento de dados ou execução de código.
Uma aplicação C recebe um endereço de memória em JSON enviado pelo cliente e o usa diretamente: `int *ptr = (int*)json_value; printf("%d", *ptr);`. Um atacante envia um endereço inválido ou privilégio elevado, causando acesso à memória inacessível ou leitura de dados sensíveis.
Nunca confie em ponteiros vindos de entrada externa. Use referências indiretas seguras (índices de array, handles opacos, offsets validados) em vez de ponteiros brutos. Sempre valide endereços antes de desreferenciar e implemente verificações de limites e proteções como ASLR e DEP no sistema operacional.