Falhas do tipo CWE-908

345 resultados

Uso de recurso não inicializado

Ocorre quando o código utiliza uma variável, buffer, objeto ou estrutura de dados sem ter atribuído um valor inicial válido. O recurso contém lixo de memória (garbage values), causando comportamentos imprevisíveis: corrupção de dados, travamentos, vazamento de informações sensíveis ou até execução de código arbitrário.

Exemplo

Um aplicativo aloca um buffer para armazenar uma senha, mas a função que deveria inicializá-lo com zeros não é chamada antes de copiar dados do usuário. Se fragmentos de memória anterior (chaves, tokens) ainda estiverem no buffer, podem vazar quando este é processado ou comparado.

Como mitigar

Inicialize sempre variáveis e estruturas no ponto de declaração ou imediatamente após alocação (use memset, calloc em C/C++, ou construtores em linguagens modernas). Ative avisos do compilador para detecção de variáveis não inicializadas (-Wall -Wuninitialized em GCC/Clang) e considere usar ferramentas estáticas (SAST) para varredura em todo o código.