The product uses an API function, data structure, or other entity in a way that relies on properties that are not always guaranteed to hold for that entity.
This can lead to resultant weaknesses when the required properties change, such as when the product is ported to a different platform or if an interaction error (CWE-435) occurs.

Indirect

Primary

Implementation

Other
Reduce Maintainability
Unexpected State
Quality Degradation

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.
High

This code assumes a particular function will always be found at a particular address. It assigns a pointer to that address and calls the function.

int (*pt2Function) (float, char, char)=0x08040000;int result2 = (*pt2Function) (12, 'a', 'b');
// Here we can inject code to execute.

The same function may not always be found at the same memory address. This could lead to a crash, or an attacker may alter the memory at the expected address, leading to arbitrary code execution.

The following function returns a stack address.

char* getName() {char name[STR_MAX];fillInName(name);return name;}

CVE-2006-1902
Change in C compiler behavior causes resultant buffer overflows in programs that depend on behaviors that were undefined in the C standard.
https://www.cve.org/CVERecord?id=CVE-2006-1902

ARR32-C
Ensure size arguments for variable length arrays are in a valid range
CWE More Abstract

ERR34-C
Detect errors when converting a string to a number
Imprecise

EXP30-C
Do not depend on the order of evaluation for side effects
CWE More Abstract

EXP33-C
Do not read uninitialized memory
CWE More Abstract

FIO46-C
Do not access a closed file
CWE More Abstract

INT34-C
Do not shift an expression by a negative number of bits or by greater than or equal to the number of bits that exist in the operand
CWE More Abstract

INT36-C
Converting a pointer to integer or integer to pointer
CWE More Abstract

MEM30-C
Do not access freed memory
CWE More Abstract

MSC14-C
Do not introduce unnecessary platform dependencies

MSC15-C
Do not depend on undefined behavior

MSC37-C
Ensure that control never reaches the end of a non-void function
CWE More Abstract

Allowed-with-Review
This CWE entry is a Class and might have Base-level children that would be more appropriate
Examine children of this entry to see if there is a better fit

CWE Content Team
MITRE
2009-03-03
1.3
2009-03-10

CWE Content Team
MITRE
2011-06-01
updated Common_Consequences

CWE Content Team
MITRE
2012-05-11
updated Relationships

CWE Content Team
MITRE
2014-07-30
updated Relationships

CWE Content Team
MITRE
2017-01-19
updated Relationships

CWE Content Team
MITRE
2017-11-08
updated Relationships, Taxonomy_Mappings

CWE Content Team
MITRE
2018-03-27
updated Relationships

CWE Content Team
MITRE
2019-01-03
updated Relationships, Weakness_Ordinalities

CWE Content Team
MITRE
2020-02-24
updated Relationships

CWE Content Team
MITRE
2020-08-20
updated Relationships

CWE Content Team
MITRE
2023-01-31
updated Description

CWE Content Team
MITRE
2023-04-27
updated Detection_Factors, Relationships

CWE Content Team
MITRE
2023-06-29
updated Mapping_Notes

CWE Content Team
MITRE
2024-02-29
4.14
2024-02-29
updated Demonstrative_Examples

CWE Content Team
MITRE
2025-12-11
4.19
2025-12-11
updated Applicable_Platforms, Common_Consequences, Time_of_Introduction