Weaknesses of type CWE-126
480 resultsLeitura além dos limites de buffer na pilha
Ocorre quando o código lê dados além do tamanho alocado de um buffer armazenado na pilha (stack). O programa acessa memória que não lhe pertence, podendo expor dados sensíveis como variáveis locais, endereços de retorno ou informações de contexto. Diferente de um buffer overflow, aqui não há escrita destrutiva, mas a leitura não autorizada compromete confidencialidade.
Uma função copia uma string de entrada para um buffer fixo de 64 bytes, mas depois lê 128 bytes desse buffer para enviá-lo a um log remoto. O atacante fornece uma string curta, mas o programa vaza dados armazenados logo após o buffer na pilha (variáveis locais de outras funções, ponteiros).
Use funções seguras com limite de tamanho (como snprintf em vez de sprintf, strncpy em vez de strcpy). Sempre rastreie e valide o comprimento real dos dados antes de ler. Ative proteções de compilação como stack canaries e AddressSanitizer em desenvolvimento para detectar acessos fora dos limites.