Falhas do tipo CWE-1024

2 resultados

Comparação de tipos incompatíveis

Ocorre quando o código compara valores de tipos de dados diferentes sem conversão apropriada, levando a resultados inesperados ou comportamento lógico incorreto. A comparação entre tipos incompatíveis pode ignorar silenciosamente diferenças críticas ou produzir falsos positivos/negativos, comprometendo a integridade da validação ou autenticação.

Exemplo

Um serviço PHP compara um hash SHA-1 retornado de um banco de dados (string) com um hash recalculado usando == (igualdade fraca). Se o banco retornar um valor que inicia com '0e' seguido de dígitos, PHP o converte para zero em uma comparação não-estrita, fazendo qualquer outro hash que também comece com '0e' ser considerado igual.

Como mitigar

Use operadores de comparação estrita (=== em JavaScript/PHP, ou equivalentes na sua linguagem) e validadores de tipo explícitos. Em críticas de segurança como hashes e senhas, converta ambos os valores para o mesmo tipo antes de comparar, preferencialmente usando funções dedicadas (hash_equals(), constant-time comparison).