481
Scope Impact Likelihood
Availability DoS: Crash, Exit, or Restart
DoS: Resource Consumption (CPU)
DoS: Resource Consumption (Memory)
DoS: Instability
This weakness will generally lead to undefined behavior
and therefore crashes. In the case of overflows involving
loop index variables, the likelihood of infinite loops is also
high.
Integrity Modify Memory
If the value in question is important to data (as opposed
to flow), simple data corruption has occurred. Also, if the
wrap around results in other conditions such as buffer
overflows, further memory corruption may occur.
Confidentiality
Availability
Access Control
Execute Unauthorized Code or Commands
Bypass Protection Mechanism
This weakness can sometimes trigger buffer overflows
which can be used to execute arbitrary code. This is
usually outside the scope of a program's implicit security
policy.
Detection Methods
Automated Static Analysis
Automated static analysis, commonly referred to as Static Application Security Testing (SAST),
can find some instances of this weakness by analyzing source code (or binary/compiled code)
without having to execute it. Typically, this is done by building a model of data flow and control
flow, then searching for potentially-vulnerable patterns that connect "sources" (origins of input)
with "sinks" (destinations where the data interacts with external components, a lower layer such
as the OS, etc.)
Effectiveness = High
Demonstrative Examples
Example 1:
The following example subtracts from a 32 bit signed integer.
Example Language: C (Bad)
#include <stdio.h>
#include <stdbool.h>
main (void)
{
int i;
i = -2147483648;
i = i - 1;
return 0;
}
The example has an integer underflow. The value of i is already at the lowest negative value
possible, so after subtracting 1, the new value of i is 2147483647.
Example 2:
This code performs a stack allocation based on a length calculation.
Example Language: C (Bad)
int a = 5, b = 6;
CWE Version 4.14
CWE-192: Integer Coercion Error
CWE-192: Integer Coercion Error