Weakness · High
CWE-464: Addition of Data Structure Sentinel
What it is
The accidental addition of a data-structure sentinel can cause serious programming logic problems.
- Severity (our rating)
- High
- Likelihood of exploit
- High
- Introduced during
- Implementation
- Exploited in the wild
- No CVE in CISA's catalog
In more detail
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.
What an attacker can do
- Modify Application Data (Integrity)
How to prevent it
Implementation
- Encapsulate the user from interacting with data sentinels. Validate user input to verify that sentinels are not present.
- 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.
H2 Security
Found it in your code?
We review where it appears, fix it with your team, and check it was not already used against you.
Talk to our teamT Academy
Stop writing it in the first place
Learn to build software and systems without weaknesses like this one, with practice on real hosts in your browser, every objective checked on the machine.
Start freeSource: MITRE Common Weakness Enumeration, CWE version 4.19.1. CWE is a trademark of The MITRE Corporation.