CAPEC-46: Overflow Variables and Tags
Description
This type of attack leverages the use of tags or variables from a formatted configuration data to cause buffer overflow. The adversary crafts a malicious HTML page or configuration file that includes oversized strings, thus causing an overflow.
- Likelihood of attack
- High
- Typical severity
- High
- Abstraction
- DetailedA low-level, detailed pattern, often for a particular technology.
Mechanism of attack: Manipulate Data Structures
Prerequisites
- The target program consumes user-controllable data in the form of tags or variables.
- The target program does not perform sufficient boundary checking.
Skills required
- LowAn adversary can simply overflow a buffer by inserting a long string into an adversary-modifiable injection vector. The result can be a DoS.
- HighExploiting a buffer overflow to inject malicious code into the stack of a software system or even the heap can require a higher skill level.
Consequences
- Availability
Unreliable Execution
- ConfidentialityIntegrityAvailability
Execute Unauthorized Commands
Run Arbitrary Code
- Confidentiality
Read Data
- Integrity
Modify Data
Mitigations
- Use a language or compiler that performs automatic bounds checking.
- Use an abstraction library to abstract away risky APIs. Not a complete solution.
- Compiler-based canary mechanisms such as StackGuard, ProPolice and the Microsoft Visual Studio /GS flag. Unless this provides automatic bounds checking, it is not a complete solution.
- Use OS-level preventative functionality. Not a complete solution.
- Do not trust input data from user. Validate all user input.
Related weaknesses (CWE)
- CWE-20Improper Input Validation
- CWE-74Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection')
- CWE-118Incorrect Access of Indexable Resource ('Range Error')
- CWE-119Improper Restriction of Operations within the Bounds of a Memory Buffer
- CWE-120Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')
- CWE-680Integer Overflow to Buffer Overflow
- CWE-697Incorrect Comparison
- CWE-733Compiler Optimization Removal or Modification of Security-critical Code