Weaknesses of type CWE-606

45 results

Entrada não validada em condição de loop

Ocorre quando dados fornecidos pelo usuário (ou fonte externa) são usados diretamente na condição de um loop sem validação prévia. Um atacante pode manipular essa entrada para causar loops infinitos, consumir recursos excessivos ou desviar o fluxo de execução do programa.

Example

Um formulário web aceita um parâmetro 'quantidade' do usuário e usa `for(int i = 0; i < quantidade; i++)` sem verificar se quantidade é um número razoável. Um atacante envia quantidade = 2147483647 e tranca a aplicação em um loop infinito, indisponibilizando-a para outros usuários.

How to mitigate

Sempre validar e sanitizar entradas antes de usá-las em condições de loop: verificar se o valor está dentro de um intervalo aceitável, se é do tipo esperado e se não ultrapassa limites de timeout ou recursos. Use whitelist de valores válidos quando possível.