Weaknesses of type CWE-170

66 results

Terminação inadequada de string nula

Fraqueza onde uma string não é terminada com o byte nulo (\0), causando buffer overread ou comportamento indefinido quando funções esperam strings válidas. Código que não garante o caractere terminador deixa a porta aberta para leitura além dos limites alocados ou processamento de dados lixo.

Example

Um programa copia dados em um buffer de 10 bytes com strncpy(buffer, entrada, 10) mas nunca adiciona buffer[10] = '\0'. Quando strlen(buffer) é chamado, a função procura pelo \0 além dos 10 bytes, lendo memória não autorizada até encontrar um nulo aleatório.

How to mitigate

Sempre termine strings explicitamente após cópia (buffer[tamanho-1] = '\0') ou use funções seguras como snprintf() que garantem terminação automática. Valide comprimentos de entrada e use ferramentas estáticas (ASan, Clang) para detectar overreads em desenvolvimento.