CWE-123: Write-what-where Condition
Description
Any condition where the attacker has the ability to write an arbitrary value to an arbitrary location, often as the result of a buffer overflow.
- Abstraction
- BaseA weakness specific enough to point to detection and prevention methods.
- Likelihood of exploit
- High
- Status
- Draft
Common consequences
- IntegrityConfidentialityAvailabilityAccess Control
Modify Memory; Execute Unauthorized Code or Commands; Gain Privileges or Assume Identity; DoS: Crash, Exit, or Restart; Bypass Protection Mechanism
Clearly, write-what-where conditions can be used to write data to areas of memory outside the scope of a policy. Also, they almost invariably can be used to execute arbitrary code, which is usually outside the scope of a program's implicit security policy. If the attacker can overwrite a pointer's worth of memory...
- IntegrityAvailability
DoS: Crash, Exit, or Restart; Modify Memory
Many memory accesses can lead to program termination, such as when writing to addresses that are invalid for the current process.
- Access ControlOther
Bypass Protection Mechanism; Other
When the consequence is arbitrary code execution, this can often be used to subvert any other security service.
Potential mitigations
- Architecture and DesignLanguage Selection
Use a language that provides appropriate memory abstractions.
- Operation
Use OS-level preventative functionality integrated after the fact. 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.