[Forgot Password]
Login  Register Subscribe

30479

 
 

423868

 
 

251139

 
 

909

 
 

196159

 
 

282

Paid content will be excluded from the download.


Download | Alert*
CWE
view XML

Access of Memory Location After End of Buffer

ID: 788Date: (C)2012-05-14   (M)2022-10-10
Type: weaknessStatus: INCOMPLETE
Abstraction Type: Base





Description

The software reads or writes to a buffer using an index or pointer that references a memory location after the end of the buffer.

Extended Description

This typically occurs when a pointer or its index is decremented to a position before the buffer, when pointer arithmetic results in a position before the beginning of the valid memory location, or when a negative index is used. These problems may be resultant from missing sentinel values (CWE-463) or trusting a user-influenced input length variable.

Applicable Platforms
None

Common Consequences

ScopeTechnical ImpactNotes
Confidentiality
 
Read memory
 
For an out-of-bounds read, the attacker may have access to sensitive information. If the sensitive information contains system details, such as the current buffers position in memory, this knowledge can be used to craft further attacks, possibly with more severe consequences.
 
Integrity
Availability
 
Modify memory
DoS: crash / exit / restart
 
Out of bounds memory access will very likely result in the corruption of relevant memory, and perhaps instructions, possibly leading to a crash. Other attacks leading to lack of availability are possible, including putting the program into an infinite loop.
 
 Modify memory
Execute unauthorized code or commands
 
If the memory accessible by the attacker can be effectively controlled, it may be possible to execute arbitrary code, as with a standard buffer overflow. If the attacker can overwrite a pointer's worth of memory (usually 32 or 64 bits), he can redirect a function pointer to his own malicious code. Even when the attacker can only modify a single byte arbitrary code execution can be possible. Sometimes this is because the same problem can be exploited repeatedly to the same effect. Other times it is because the attacker can overwrite security-critical application-specific data -- such as a flag indicating whether the user is an administrator.
 

Detection Methods
None

Potential Mitigations
None

Relationships

Related CWETypeViewChain
CWE-788 ChildOf CWE-119 Weakness CWE-1000
CWE-699 
 

Demonstrative Examples   (Details)

  1. In the following C/C++ example the method processMessageFromSocket() will get a message from a socket, placed into a buffer, and will parse the contents of the buffer into a structure that contains the message length and the message body. A for loop is used to copy the message body into a local character string which will be passed to another method for processing. (Demonstrative Example Id DX-91)
  2. This example applies an encoding procedure to an input string and stores it into a buffer. (Demonstrative Example Id DX-19)
  3. This example takes an IP address from a user, verifies that it is well formed and then looks up the hostname and copies it into a buffer. (Demonstrative Example Id DX-1)

Observed Examples

  1. CVE-2009-2550 : Classic stack-based buffer overflow in media player using a long entry in a playlist
  2. CVE-2009-2403 : Heap-based buffer overflow in media player using a long entry in a playlist
  3. CVE-2009-0689 : large precision value in a format string triggers overflow
  4. CVE-2009-0558 : attacker-controlled array index leads to code execution
  5. CVE-2008-4113 : OS kernel trusts userland-supplied length value, allowing reading of sensitive information
  6. CVE-2007-4268 : Chain: integer signedness passes signed comparison, leads to heap overflow

For more examples, refer to CVE relations in the bottom box.

White Box Definitions
None

Black Box Definitions
None

Taxynomy Mappings
None

References:
None

CVE    65
CVE-2021-21093
CVE-2021-21092
CVE-2021-21048
CVE-2021-21082
...

© SecPod Technologies