Fallos del tipo CWE-474
13 resultadosUso de função com implementações inconsistentes
Ocorre quando o código chama uma função que tem múltiplas implementações (em diferentes bibliotecas, plataformas ou versões) com comportamentos diferentes ou incompatíveis. O desenvolvedor assume um comportamento esperado, mas a função realmente usada em tempo de execução se comporta de forma distinta, causando falhas de segurança ou lógica.
Um programa usa strcpy() esperando que ela valide tamanho de buffer (como faz em algumas versões de biblioteca), mas a versão linkada em produção não faz validação nenhuma, permitindo buffer overflow. Ou uma API de criptografia que em uma versão usa chaves de 256 bits e em outra usa 128 bits sem avisar, enfraquecendo a proteção.
Sempre verificar e documentar qual implementação concreta de uma função será usada em cada ambiente (versão de biblioteca, SO, compilador). Usar versionamento explícito de dependências, testes de integração que validem comportamento real, e preferir funções com contrato bem definido e testado (como safe_strcpy ou APIs modernas que rejeitam ambiguidade).