Weaknesses of type CWE-127

8 results

Leitura abaixo dos limites do buffer

Ocorre quando o código tenta ler dados de um endereço de memória anterior ao início de um buffer alocado, sem verificar os limites. O programa acessa memória que não deveria, podendo expor dados sensíveis ou causar comportamento impredizível.

Example

Uma função que processa uma string e faz um loop começando em um índice negativo ou sem validar o offset inicial: `char *ptr = buffer - 5; printf("%s", ptr);` lê 5 bytes antes do buffer começar, capturando lixo de memória ou dados confidenciais.

How to mitigate

Sempre valide índices e offsets antes de acessar buffers; use verificações de limite explícitas; prefira funções seguras de strings (como strnlen, memcpy com tamanho declarado) e considere sanitizadores (AddressSanitizer) em testes para detectar underreads.