| Home > CAPEC List > CAPEC-8: Buffer Overflow in an API Call (Version 3.9) |
|
High
High
| Nature | Type | ID | Name |
|---|---|---|---|
| ChildOf | Standard Attack PatternStandard Attack Pattern - A standard level attack pattern in CAPEC is focused on a specific methodology or technique used in an attack. It is often seen as a singular piece of a fully executed attack. A standard attack pattern is meant to provide sufficient details to understand the specific technique and how it attempts to accomplish a desired goal. A standard level attack pattern is a specific type of a more abstract meta level attack pattern. | 100 | Overflow Buffers |
| PeerOf | Detailed Attack PatternDetailed Attack Pattern - A detailed level attack pattern in CAPEC provides a low level of detail, typically leveraging a specific technique and targeting a specific technology, and expresses a complete execution flow. Detailed attack patterns are more specific than meta attack patterns and standard attack patterns and often require a specific protection mechanism to mitigate actual attacks. A detailed level attack pattern often will leverage a number of different standard level attack patterns chained together to accomplish a goal. | 46 | Overflow Variables and Tags |
| CanFollow | Standard Attack PatternStandard Attack Pattern - A standard level attack pattern in CAPEC is focused on a specific methodology or technique used in an attack. It is often seen as a singular piece of a fully executed attack. A standard attack pattern is meant to provide sufficient details to understand the specific technique and how it attempts to accomplish a desired goal. A standard level attack pattern is a specific type of a more abstract meta level attack pattern. | 69 | Target Programs with Elevated Privileges |
| View Name | Top Level Categories |
|---|---|
| Domains of Attack | Software |
| Mechanisms of Attack | Manipulate Data Structures |
Identify target application: The adversary, with knowledge of vulnerable libraries or shared code modules, identifies a target application or program that makes use of these.
Find injection vector: The adversary attempts to use the API, and if they can they send a large amount of data to see if the buffer overflow attack really does work.
| Techniques |
|---|
| Provide large input to a program or application and observe the behavior. If there is a crash, this means that a buffer overflow attack is possible. |
Craft overflow content: The adversary crafts the content to be injected based on their knowledge of the vulnerability and their desired outcome. If the intent is to simply cause the software to crash, the content need only consist of an excessive quantity of random data. If the intent is to leverage the overflow for execution of arbitrary code, the adversary will craft a set of content that not only overflows the targeted buffer but does so in such a way that the overwritten return address is replaced with one of the adversaries' choosing which points to code injected by the adversary.
| Techniques |
|---|
| Create malicious shellcode that will execute when the program execution is returned to it. |
| Use a NOP-sled in the overflow content to more easily "slide" into the malicious code. This is done so that the exact return address need not be correct, only in the range of all of the NOPs |
Overflow the buffer: Using the API as the injection vector, the adversary injects the crafted overflow content into the buffer.
| Scope | Impact | Likelihood |
|---|---|---|
Availability | Unreliable Execution | |
Confidentiality Integrity Availability | Execute Unauthorized Commands | |
Confidentiality | Read Data | |
Integrity | Modify Data |
A buffer overflow in the FreeBSD utility setlocale (found in the libc module) puts many programs at risk all at once.
A buffer overflow in the Xt library of the X windowing system allows local users to execute commands with root privileges.
| CWE-ID | Weakness Name |
|---|---|
| 120 | Buffer Copy without Checking Size of Input ('Classic Buffer Overflow') |
| 119 | Improper Restriction of Operations within the Bounds of a Memory Buffer |
| 118 | Incorrect Access of Indexable Resource ('Range Error') |
| 74 | Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection') |
| 20 | Improper Input Validation |
| 680 | Integer Overflow to Buffer Overflow |
| 733 | Compiler Optimization Removal or Modification of Security-critical Code |
| 697 | Incorrect Comparison |
| Submissions | ||
|---|---|---|
| Submission Date | Submitter | Organization |
| 2014年06月23日 (Version 2.6) | CAPEC Content Team | The MITRE Corporation |
| Modifications | ||
| Modification Date | Modifier | Organization |
| 2018年07月31日 (Version 2.12) | CAPEC Content Team | The MITRE Corporation |
| Updated References | ||
| 2021年10月21日 (Version 3.6) | CAPEC Content Team | The MITRE Corporation |
| Updated Description, Execution_Flow | ||
| 2022年02月22日 (Version 3.7) | CAPEC Content Team | The MITRE Corporation |
| Updated Skills_Required | ||
| 2022年09月29日 (Version 3.8) | CAPEC Content Team | The MITRE Corporation |
| Updated Example_Instances | ||
|
Use of the Common Attack Pattern Enumeration and Classification (CAPEC), and the associated references from this website are subject to the Terms of Use. Copyright © 2007–2025, The MITRE Corporation. CAPEC and the CAPEC logo are trademarks of The MITRE Corporation. |
||