VariantIncomplete

CWE-194Unexpected Sign Extension

Category: other

Description

The product performs an operation on a number that causes it to be sign extended when it is transformed into a larger data type. When the original number is negative, this can produce unexpected values that lead to resultant weaknesses.

Common consequences· 1

  • Integrity / Confidentiality / Availability / Other — Read Memory, Modify Memory, Other
    When an unexpected sign extension occurs in code that operates directly on memory buffers, such as a size value or a memory index, then it could cause the program to write or read outside the boundaries of the intended buffer. If the numeric value is associated with an application-level resource, such as a quantity or price for a product in an e-commerce site, then the sign extension could produce a value that is much higher (or lower) than the application's allowable range.

Potential mitigations· 1

  • [Implementation]Avoid using signed variables if you don't need to represent negative values. When negative values are needed, perform validation after you save those values to larger data types, or before passing them to functions that are expecting unsigned values.

References

  1. https://cwe.mitre.org/data/definitions/194.html

Related by meaning· 6

Nearest entities by semantic similarity across the cs-graph corpus.

CWE
Integer Overflow or Wraparound
CWE
Signed to Unsigned Conversion Error
CWE
Unsigned to Signed Conversion Error
CWE
Incorrect Calculation
CWE
Integer Underflow (Wrap or Wraparound)
CWE
Insufficient Precision or Accuracy of a Real Number
Sourced from MITRE CWE 4.20. Curated for EU compliance use cases by Adam Lundqvist, Founder at SQUR.