Out-of-bounds Write
Weakness ID: 787 (Weakness Base)Status: Incomplete
+ Description

Description Summary

The software writes data past the end, or before the beginning, of the intended buffer.

Extended Description

This typically occurs when the pointer or its index is incremented or decremented to a position beyond the bounds of the buffer or when pointer arithmetic results in a position outside of the valid memory location to name a few. This may result in corruption of sensitive information, a crash, or code execution among other things.

+ Demonstrative Examples

Example 1

The following code attempts to save four different identification numbers into an array.

(Bad Code)
Example Language:
int id_sequence[3];

/* Populate the id array. */

id_sequence[0] = 123;
id_sequence[1] = 234;
id_sequence[2] = 345;
id_sequence[3] = 456;
+ Relationships
NatureTypeIDNameView(s) this relationship pertains toView(s)
ChildOfWeakness ClassWeakness Class119Failure to Constrain Operations within the Bounds of a Memory Buffer
Development Concepts (primary)699
Research Concepts (primary)1000
ParentOfWeakness VariantWeakness Variant121Stack-based Buffer Overflow
Development Concepts699
Research Concepts1000
ParentOfWeakness VariantWeakness Variant122Heap-based Buffer Overflow
Development Concepts699
Research Concepts1000
ParentOfWeakness BaseWeakness Base124Buffer Underwrite ('Buffer Underflow')
Development Concepts699
Research Concepts1000
+ Content History
Submission DateSubmitterOrganizationSource
2009-10-21MITREInternal CWE Team