CWE-1335 — Incorrect Bitwise Shift of Integer
CWE-1335: Incorrect Bitwise Shift of Integer
MITRE CWE weakness
| Kind | Weakness |
| Abstraction | Base |
| Status | Draft |
| Likelihood of exploit | — |
Description
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.
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.
Common consequences
- Integrity: DoS: Crash, Exit, or Restart
Mitigations
Implementation — Implicitly or explicitly add checks and mitigation for negative or over-shift values.
References
- CWE page: https://cwe.mitre.org/data/definitions/1335.html
- CWE list: https://cwe.mitre.org/data/index.html