Weaknesses of type CWE-788
147 resultsAcesso de memória além do limite do buffer
Ocorre quando o código tenta ler ou escrever em um endereço de memória que fica além do espaço alocado para uma estrutura de dados (array, string, struct). O programa não valida se o índice ou o ponteiro está dentro dos limites, causando leitura de dados arbitrários ou corrupção de memória adjacente.
Um buffer de 100 bytes é alocado, mas o código acessa o índice 150 sem checar. Isso pode expor dados sensíveis da memória (variáveis de outras estruturas, credenciais) ou causar crash da aplicação. Comum em parsers de formatos e manipulação de strings em C/C++.
Sempre validar índices e offsets antes de acessar: usar `if (index < buffer_size)` ou funções seguras (`strncpy`, `snprintf`). Em linguagens como Rust e Python, o bounds-checking é automático. Para C/C++, considerar instrumentação (AddressSanitizer) e revisão de código em operações com buffers.