Weaknesses of type CWE-1335

6 results

Deslocamento de bits incorreto em inteiros

Ocorre quando o código realiza operações de deslocamento bitwise (shift left ou shift right) sem validar corretamente o valor do deslocador, resultando em comportamento indefinido ou resultado diferente do esperado. Isso pode levar a corrupção de dados, lógica de segurança quebrada ou contornos de validação.

Example

Um código que calcula uma máscara de permissões fazendo `1 << nivel_usuario` sem verificar se `nivel_usuario` é maior que o tamanho em bits do inteiro (32 ou 64 bits). Se o deslocador exceder esse limite, o resultado é indefinido: pode zerar, rotacionar ou manter o valor original dependendo da arquitetura, levando à concessão acidental de permissões erradas.

How to mitigate

Validar sempre que o deslocador está dentro do intervalo válido (0 até tamanho_em_bits - 1) antes de executar a operação. Em linguagens como C/C++, usar verificações explícitas; em linguagens mais seguras, confiar em exceções ou comportamento definido (Python, por exemplo, lida com shifts grandes de forma previsível).