Falhas do tipo CWE-174

1 resultado

Decodificação dupla do mesmo dado

Ocorre quando dados codificados (como URL-encoded ou base64) são decodificados mais de uma vez em sequência, sem validação entre as camadas. Um atacante pode contornar filtros de segurança codificando o payload malicioso duas vezes: a primeira decodificação o passa pela validação, e a segunda o executa em seu estado malicioso real.

Exemplo

Uma aplicação web recebe um parâmetro URL-encoded, valida se contém caracteres perigosos (ex: '<' ou '>'). Se decodificar duas vezes sem verificar entre elas, o atacante envia '%253C' (duplo-encoded): a primeira decodificação vira '%3C' (passa na validação), e a segunda vira '<' (injeta HTML/JavaScript).

Como mitigar

Decodifique apenas uma vez no ponto de entrada e valide após cada decodificação. Se múltiplas camadas precisam processar dados codificados, normalize e valide no início do pipeline, não em cada decodificação. Implemente listas de rejeição de caracteres perigosos após decodificação final.