Weaknesses of type CWE-823
100 resultsUso de offset de ponteiro fora do intervalo válido
O código calcula ou usa um deslocamento (offset) para um ponteiro que aponta para além dos limites da memória alocada ou válida para aquele objeto. Isso permite leitura ou escrita em áreas de memória não pretendidas, causando corrupção de dados, vazamento de informações ou execução de código arbitrário.
Uma função recebe um índice do usuário e o usa diretamente como offset em um array sem validar se está dentro dos limites: `int valor = array[indice_usuario];` Se indice_usuario for negativo ou maior que o tamanho do array, acessa memória inválida.
Sempre validar índices e offsets antes de usá-los em aritmética de ponteiros: confirmar que estão dentro de [0, tamanho]. Use funções seguras de cópia de memória (como strncpy ao invés de strcpy) e considere usar linguagens com verificação de limites em tempo de execução ou análise estática para detectar offsets suspeitos.