Falhas do tipo CWE-786

9 resultados

Acesso à memória antes do início do buffer

A aplicação acessa posições de memória anteriores ao começo de um buffer alocado, tipicamente por usar índices negativos ou calcular endereços com underflow. Isso viola os limites da estrutura e pode corromper dados adjacentes, causar travamentos ou ser explorado para leitura de informações sensíveis.

Exemplo

Um programa que processa um array esperando índices sempre positivos recebe -1 como entrada; em vez de validar, subtrai direto do ponteiro base e lê/escreve em memória não alocada ao buffer. Outro caso: um loop com decremento mal controlado que, em linguagens como C, permite acessar além do início da alocação.

Como mitigar

Valide rigorosamente índices e offsets antes de qualquer acesso — rejeite negativos se o buffer não suporta; use linguagens com bounds-checking automático (Java, Python) ou bibliotecas de safe-indexing. Em C/C++, implemente verificações explícitas (offset >= 0 && offset < tamanho) antes de qualquer aritmética de ponteiros.