CWE-806: Buffer Access Using Size of Source Buffer

VariantIncomplete

The product uses the size of a source buffer when reading from or writing to a destination buffer, which may cause it to access memory that is outside of the bounds of the buffer.

View on MITRE
Back to CWE Lookup

Extended Description

When the size of the destination is smaller than the size of the source, a buffer overflow could occur.

Technical Details

Structure
Simple
Vulnerability Mapping
ALLOWED

Applicable To

Languages
CC++Memory-Unsafe
Platforms

Source-backed guidance

Additional facts reviewed against primary or authoritative security sources.

Verify controls for CWE-806 with SSDF evidence

Use NIST SSDF verification and vulnerability-response practices to detect CWE-806, Buffer Access Using Size of Source Buffer, throughout the product lifecycle. Derive review questions, static or dynamic checks, and negative tests from the CWE's causal behavior; define the components and lifecycle stages each check covers; and retain findings with enough evidence to distinguish the root cause from symptoms and impacts. Track escapes and false negatives, then improve the verification plan after every confirmed occurrence.

NIST SP 800-218 Secure Software Development FrameworkNational Institute of Standards and Technology

Apply Environment Hardening controls for Buffer Access Using Size of Source Buffer

MITRE associates mitigation with Architecture and Design, Operation, Build and Compilation, and Implementation; the listed strategies include Environment Hardening; documented detection approaches include Automated Static Analysis, and Automated Dynamic Analysis. Use these source-defined anchors to turn CWE-806 into implementation, review, and verification checks for the affected component.

CWE-806: Buffer Access Using Size of Source BufferMITRE CWE

Triage CWE-806 against known exploitation evidence

Use CISA's Known Exploited Vulnerabilities catalog to test whether a vulnerability mapped to CWE-806, Buffer Access Using Size of Source Buffer, has evidence of exploitation in the wild. Confirm the CVE-to-CWE root-cause mapping independently before attaching the example, then capture the affected product, required action, and remediation deadline. A missing KEV match is not evidence that the weakness is unexploited, and a KEV entry must not be generalized to every occurrence of this CWE.

Known Exploited Vulnerabilities CatalogCybersecurity and Infrastructure Security Agency

Apply precise root-cause mapping to CWE-806

Apply MITRE's full root-cause mapping guidance when using CWE-806, Buffer Access Using Size of Source Buffer. Separate weakness language from attacker prerequisites and technical impact, check the entry's abstraction and vulnerability-mapping notes, and prefer the most specific Base or Variant supported by the evidence. Record the rejected alternatives and require an independent review before the mapping is used for remediation trends or program metrics.

CVE to CWE Root Cause Mapping GuidanceMITRE CWE

Validate CWE-806 with root-cause mapping checks

Apply MITRE's root-cause mapping quick tips to CWE-806, Buffer Access Using Size of Source Buffer. Confirm the finding describes the causal weakness rather than an impact or attack pattern, compare the abstraction and mapping notes with plausible alternatives, and have a second reviewer challenge the selection. Preserve the evidence and reasoning so recurring defects can be measured against one consistent identifier.

CVE to CWE Root Cause Mapping Quick TipsMITRE CWE

Frequently Asked Questions

What is CWE-806: Buffer Access Using Size of Source Buffer?+

CWE-806: Buffer Access Using Size of Source Buffer is a Common Weakness Enumeration (CWE) entry maintained by MITRE. The product uses the size of a source buffer when reading from or writing to a destination buffer, which may cause it to access memory that is outside of the bounds of the buffer. When the size of the destination is smaller than the size of the source, a buffer overflow could occur.

What are the security consequences of Buffer Access Using Size of Source Buffer?+

If exploited, CWE-806 (Buffer Access Using Size of Source Buffer) it can compromise Availability, Integrity, Confidentiality and Access Control, leading to outcomes such as Modify Memory, DoS: Crash, Exit, or Restart, DoS: Resource Consumption (CPU), Read Memory, Execute Unauthorized Code or Commands and Bypass Protection Mechanism.

How do you prevent or mitigate Buffer Access Using Size of Source Buffer?+

Recommended mitigations for CWE-806 include: Use an abstraction library to abstract away risky APIs. Examples include the Safe C String Library (SafeStr) by Viega, and the Strsafe.h library from Microsoft. This is not a complete solution, since many buffer overflows are not related to strings. Programmers should adhere to the following rules when allocating and managing their applications memory: Double check that your buffer is as large as you specify. When using functions that accept a number of bytes to copy, such as strncpy(), be aware that if the destination buffer size is equal to the source buffer size, it may not NULL-terminate the string. Check buffer boundaries if calling this function in a loop and make sure there is no danger of writing past the allocated space. Truncate all input strings to a reasonable length before passing them to the copy and concatenation functions. Most mitigating technologies at the compiler or OS level to date address only a subset of buffer overflow problems and rarely provide complete protection against even that subset. It is good practice to implement strategies to increase the workload of an attacker, such as leaving the attacker to guess an unknown value that changes every program execution.

Which programming languages are affected by Buffer Access Using Size of Source Buffer?+

CWE-806 commonly affects C, C++ and Memory-Unsafe. Note that weaknesses are often language-agnostic patterns, so secure coding practices apply broadly.

What is the difference between a CWE and a CVE?+

A CWE (Common Weakness Enumeration) like CWE-806 describes a category of software weakness — the underlying flaw type. A CVE (Common Vulnerabilities and Exposures) identifies a specific, real-world vulnerability in a particular product. In short, a CWE is the kind of mistake, and a CVE is an instance of that mistake being found in software.

Learn More

Advertisement