Fallos del tipo CWE-468

4 resultados

Escalagem incorreta de ponteiros

Ocorre quando o código multiplica ou dimensiona um ponteiro pelo tamanho errado de elemento, causando acesso a endereços de memória indevidos. Isso acontece típico em aritmética de ponteiros (pointer arithmetic) onde o programador calcula deslocamentos manualmente em vez de deixar o compilador fazer isso automaticamente, levando a leitura ou escrita em posições de memória inesperadas.

Ejemplo

Um buffer de inteiros (4 bytes cada) é acessado com `ptr + offset * 2` em vez de `ptr + offset`, fazendo o código pular posições e ler dados de estruturas adjacentes ou de fora dos limites do array, potencialmente expondo informações sensíveis ou causando corrupção.

Cómo mitigar

Use aritmética de ponteiros de forma segura: deixe o compilador escalar automaticamente (ex: `ptr[i]` em vez de `*(ptr + i * sizeof(...))`) e evite cálculos manuais de deslocamento. Em linguagens de alto nível ou com validação, adicione bounds checking e tipos que forçam dimensionamento correto.