CWE-1335
Incorrect Bitwise Shift of Integer
AI Translation Available
An integer value is specified to be shifted by a negative amount or an amount greater than or equal to the number of bits contained in the value causing an unexpected or indeterminate result.
Status
draft
Abstraction
base
Affected Platforms
C
C#
C++
Java
JavaScript
Extended Description
AI Translation
Specifying a value to be shifted by a negative amount is undefined in various languages. Various computer architectures implement this action in different ways. The compilers and interpreters when generating code to accomplish a shift generally do not do a check for this issue.
Specifying an over-shift, a shift greater than or equal to the number of bits contained in a value to be shifted, produces a result which varies by architecture and compiler. In some languages, this action is specifically listed as producing an undefined result.
Technical Details
AI Translation
Common Consequences
integrity
Impacts
dos: crash, exit, or restart
Detection Methods
automated static analysis
Potential Mitigations
Phases:
implementation
Descriptions:
•
Implicitly or explicitly add checks and mitigation for negative or over-shift values.