Weaknesses of type CWE-130

106 results

Inconsistência no tratamento de parâmetros de comprimento

Ocorre quando o código não valida ou trata adequadamente inconsistências entre o comprimento declarado de um buffer/string e seu tamanho real. Um atacante explora essa discrepância para causar leitura ou escrita fora dos limites, levando a vazamento de dados, corrupção de memória ou execução de código.

Example

Uma função recebe uma string com um parâmetro 'length' que não corresponde ao tamanho real do buffer. Se o código copia 'length' bytes sem verificar se o buffer realmente possui esse tamanho, um memcpy() ou strcpy() escreve além do limite alocado, ou lê dados inválidos de memória adjacente.

How to mitigate

Sempre validar que o parâmetro de comprimento é coerente com o tamanho real do buffer antes de operações de cópia ou leitura. Use funções seguras (strncpy, memcpy_s) e implemente checks explícitos: se length > buffer_size, rejeitar ou truncar. Ferramentas de análise estática ajudam a detectar esse padrão.