The behavior of a program that depends on a construct having undefined behavior is not predictable.
Ada: Clause 3.4.3 undefined behavior
C: Clause 3.4.3 undefined behavior
C++: Clause 1.3.12 undefined behavior
Fortran: ???
CWE: Nothing applicable
See clause 5.1.3.
Language specifications often call out when the behavior of a language construct is undefined (i.e., no specific behavior is required and the translator or runtime system is at liberty to do anything it pleases).
This vulnerability can be avoided by not using the construct or using it in a way that guarantees that the domain of its behavior does not fall into undefined behavior.
This vulnerability is intended to be applicable to languages with the following characteristics:
Software developers can avoid the vulnerability or mitigate its ill effects in the following ways: