Fallos del tipo CWE-480
8 resultadosUso de operador incorreto
O desenvolvedor utiliza um operador lógico ou aritmético diferente do pretendido (por exemplo, & em vez de &&, ou = em vez de ==), causando comportamento inesperado no programa. Isso pode levar a lógica de autenticação quebrada, validações ignoradas ou cálculos errados que afetam a segurança.
Um código de autenticação verifica `if (user_role = ADMIN)` usando atribuição (=) em vez de comparação (==), o que sempre retorna verdadeiro e concede acesso a qualquer usuário. Ou uma validação usa `if (valor & 0xFF)` esperando testar um bit, mas sem parênteses precedência faz a conta errada.
Use linting e análise estática (como cppcheck, pylint, eslint) configurados para alertar sobre atribuições em condicionais e precedência duvidosa. Revise código durante code review focando em operadores de comparação e lógicos, e mantenha testes unitários que validem as condições críticas.