CWE-464: Addition of Data Structure Sentinel
Description
The accidental addition of a data-structure sentinel can cause serious programming logic problems.
Data-structure sentinels are often used to mark the structure of data. A common example of this is the null character at the end of strings or a special sentinel to mark the end of a linked list. It is dangerous to allow this type of control data to be easily accessible. Therefore, it is important to protect from the addition or modification of sentinels.
- Abstraction
- BaseA weakness specific enough to point to detection and prevention methods.
- Likelihood of exploit
- High
- Status
- Incomplete
Common consequences
- Integrity
Modify Application Data
Generally this error will cause the data structure to not work properly by truncating the data.
Potential mitigations
- ImplementationArchitecture and Design
Encapsulate the user from interacting with data sentinels. Validate user input to verify that sentinels are not present.
- Implementation
Proper error checking can reduce the risk of inadvertently introducing sentinel values into data. For example, if a parsing function fails or encounters an error, it might return a value that is the same as the sentinel.
- Architecture and Design
Use an abstraction library to abstract away risky APIs. This is not a complete solution.
- Operation
Use OS-level preventative functionality. This is not a complete solution.
Related weaknesses
Parent weaknesses
CAPEC attack patterns that exploit it
CWE 4.20 links no CAPEC attack pattern to this weakness.