CWE-464
Addition of Data Structure Sentinel
AI Translation Available
The accidental addition of a data-structure sentinel can cause serious programming logic problems.
Status
incomplete
Abstraction
base
Likelihood
high
Affected Platforms
C
C++
Extended Description
AI Translation
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.
Technical Details
AI Translation
Common Consequences
integrity
Impacts
modify application data
Potential Mitigations
Phases:
implementation
architecture and design
operation
Descriptions:
•
Encapsulate the user from interacting with data sentinels. Validate user input to verify that sentinels are not present.
•
Use an abstraction library to abstract away risky APIs. This is not a complete solution.
•
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.
•
Use OS-level preventative functionality. This is not a complete solution.