Falhas do tipo CWE-480

8 resultados

Uso de operador incorreto

O desenvolvedor usa um operador lógico ou aritmético errado no código, causando comportamento não intencional. Por exemplo, usar '&' (AND bitwise) em vez de '&&' (AND lógico), ou '=' (atribuição) em vez de '==' (comparação). Isso leva a decisões de controle de fluxo incorretas ou corrupção de dados.

Exemplo

Um validador de permissões escreve 'if (user_id = admin_id)' em vez de 'if (user_id == admin_id)'. O código atribui o valor de admin_id a user_id e sempre avalia como verdadeiro, concedendo acesso a qualquer usuário — falha crítica de segurança.

Como mitigar

Use ferramentas de análise estática (linters, compiladores com warnings altos) configuradas para detectar atribuição em condicionais. Implemente testes unitários que cobram branches críticos de segurança e revisão obrigatória de código em decisões de controle de acesso.