Falhas do tipo CWE-456

8 resultados

Variável não inicializada

Ocorre quando uma variável é declarada mas não recebe um valor inicial antes de ser usada, permitindo que ela contenha lixo de memória (valores aleatórios ou resíduos de dados anteriores). Um atacante pode explorar esse comportamento indefinido para vazar informações sensíveis, causar travamento ou contornar verificações de segurança.

Exemplo

Um programa em C aloca um buffer na stack para armazenar uma senha, mas nunca o inicializa com zeros. Antes de preencher com dados legítimos, o código compara esse buffer com um valor esperado — como o buffer contém lixo de memória, a comparação pode acidentalmente passar ou revelar bytes da memória anterior.

Como mitigar

Sempre inicialize variáveis no ponto de declaração (ex: `int x = 0;` em C, ou use `memset()` para estruturas). Em linguagens modernas (Python, Go, Rust), preferred usar inicialização segura e ferramentas de análise estática que detectem variáveis não inicializadas antes do uso.