306
Common Consequences
Scope Impact Likelihood
Integrity
Confidentiality
Availability
Modify Memory
Execute Unauthorized Code or Commands
Buffer overflows often can be used to execute arbitrary
code, which is usually outside the scope of the product's
implicit security policy. This can often be used to subvert
any other security service.
Availability Modify Memory
DoS: Crash, Exit, or Restart
DoS: Resource Consumption (CPU)
Buffer overflows generally lead to crashes. Other attacks
leading to lack of availability are possible, including putting
the product into an infinite loop.
Detection Methods
Automated Static Analysis
This weakness can often be detected using automated static analysis tools. Many modern tools
use data flow analysis or constraint-based techniques to minimize the number of false positives.
Automated static analysis generally does not account for environmental considerations when
reporting out-of-bounds memory operations. This can make it difficult for users to determine
which warnings should be investigated first. For example, an analysis tool might report buffer
overflows that originate from command line arguments in a program that is not expected to run
with setuid or other special privileges.
Effectiveness = High
Detection techniques for buffer-related errors are more mature than for most other weakness
types.
Automated Dynamic Analysis
This weakness can be detected using dynamic tools and techniques that interact with the
software using large test suites with many diverse inputs, such as fuzz testing (fuzzing),
robustness testing, and fault injection. The software's operation may slow down, but it should not
become unstable, crash, or generate incorrect results.
Manual Analysis
Manual analysis can be useful for finding this weakness, but it might not achieve desired code
coverage within limited time constraints. This becomes difficult for weaknesses that must be
considered for all inputs, since the attack surface can be too large.
Automated Static Analysis - Binary or Bytecode
According to SOAR, the following detection techniques may be useful: Highly cost effective:
Bytecode Weakness Analysis - including disassembler + source code weakness analysis Binary
Weakness Analysis - including disassembler + source code weakness analysis
Effectiveness = High
Manual Static Analysis - Binary or Bytecode
According to SOAR, the following detection techniques may be useful: Cost effective for partial
coverage: Binary / Bytecode disassembler - then use manual analysis for vulnerabilities &
anomalies
Effectiveness = SOAR Partial
Dynamic Analysis with Automated Results Interpretation
CWE Version 4.14
CWE-120: Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')
CWE-120: Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')