471
Likelihood Of Exploit
Low
Common Consequences
Scope Impact Likelihood
Integrity
Confidentiality
Modify Memory
Read Memory
Can result in unintended modifications or exposure of
sensitive memory.
Detection Methods
Fuzzing
Fuzz testing (fuzzing) is a powerful technique for generating large numbers of diverse inputs
- either randomly or algorithmically - and dynamically invoking the code with those inputs.
Even with random inputs, it is often capable of generating unexpected results such as crashes,
memory corruption, or resource consumption. Fuzzing effectively produces repeatable test cases
that clearly indicate bugs, which helps developers to diagnose the issues.
Effectiveness = High
Potential Mitigations
Phase: Implementation
Phase: Architecture and Design
In flat address space situations, never allow computing memory addresses as offsets from
another memory address.
Phase: Architecture and Design
Fully specify protocol layout unambiguously, providing a structured grammar (e.g., a compilable
yacc grammar).
Phase: Testing
Testing: Test that the implementation properly handles each case in the protocol grammar.
Demonstrative Examples
Example 1:
In this example function, the memory address of variable b is derived by adding 1 to the address of
variable a. This derived address is then used to assign the value 0 to b.
Example Language: C (Bad)
void example() {
char a;
char b;
*(&a + 1) = 0;
}
Here, b may not be one byte past a. It may be one byte in front of a. Or, they may have three bytes
between them because they are aligned on 32-bit boundaries.
MemberOf Relationships
This MemberOf relationships table shows additional CWE Catgeories and Views that reference this
weakness as a member. This information is often useful in understanding where a weakness fits
within the context of external information sources.
Nature Type ID Name Page
MemberOf 977 SFP Secondary Cluster: Design 888 2407
CWE Version 4.14
CWE-190: Integer Overflow or Wraparound
CWE-190: Integer Overflow or Wraparound