Falhas do tipo CWE-1335
6 resultadosDeslocamento bitwise incorreto de inteiros
Ocorre quando o código realiza operações de deslocamento de bits (shift left ou shift right) com valores inválidos ou sem validação adequada, como usar um operando negativo, maior que o tamanho do tipo ou zero indefinido. Isso pode resultar em comportamento indefinido, corrupção de dados ou contorno de controles de segurança baseados em manipulação de flags e máscaras.
Um código que aplica máscara de permissões usando shift sem validar o valor: `permissões = 1 << user_input` onde user_input vem de entrada externa sem limites. Se user_input for 32 ou maior em um inteiro de 32 bits, o resultado é indefinido e pode conceder ou negar permissões de forma impredizível.
Sempre validar o operando de deslocamento antes da operação: verificar se está dentro do intervalo válido (0 a tamanho_do_tipo - 1), usar tipos explícitos e considerar usar bibliotecas de aritmética segura. Testar edge cases em revisão de código, especialmente quando shifts envolvem entrada externa ou cálculos críticos de segurança.