304
[REF-59]Arjan van de Ven. "Limiting buffer overflows with ExecShield". < https://archive.is/saAFo
>.2023-04-07.
[REF-60]"PaX". < https://en.wikipedia.org/wiki/Executable_space_protection#PaX >.2023-04-07.
[REF-61]Microsoft. "Understanding DEP as a mitigation technology part 1". < https://
msrc.microsoft.com/blog/2009/06/understanding-dep-as-a-mitigation-technology-part-1/
>.2023-04-07.
[REF-62]Mark Dowd, John McDonald and Justin Schuh. "The Art of Software Security
Assessment". 1st Edition. 2006. Addison Wesley.
[REF-64]Grant Murphy. "Position Independent Executables (PIE)". 2012 November 8. Red Hat. <
https://www.redhat.com/en/blog/position-independent-executables-pie >.2023-04-07.
[REF-1332]John Richard Moser. "Prelink and address space randomization". 2006 July 5. < https://
lwn.net/Articles/190139/ >.2023-04-26.
[REF-1333]Dmitry Evtyushkin, Dmitry Ponomarev, Nael Abu-Ghazaleh. "Jump Over ASLR:
Attacking Branch Predictors to Bypass ASLR". 2016. < http://www.cs.ucr.edu/~nael/pubs/
micro16.pdf >.2023-04-26.
[REF-1334]D3FEND. "Stack Frame Canary Validation (D3-SFCV)". 2023. < https://
d3fend.mitre.org/technique/d3f:StackFrameCanaryValidation/ >.2023-04-26.
[REF-1335]D3FEND. "Segment Address Offset Randomization (D3-SAOR)". 2023. < https://
d3fend.mitre.org/technique/d3f:SegmentAddressOffsetRandomization/ >.2023-04-26.
[REF-1336]D3FEND. "Process Segment Execution Prevention (D3-PSEP)". 2023. < https://
d3fend.mitre.org/technique/d3f:ProcessSegmentExecutionPrevention/ >.2023-04-26.
[REF-1337]Alexander Sotirov and Mark Dowd. "Bypassing Browser Memory Protections: Setting
back browser security by 10 years". 2008. < https://www.blackhat.com/presentations/bh-usa-08/
Sotirov_Dowd/bh08-sotirov-dowd.pdf >.2023-04-26.
CWE-120: Buffer Copy without Checking Size of Input ('Classic Buffer
Overflow')
Weakness ID : 120
Structure : Simple
Abstraction : Base
Description
The product copies an input buffer to an output buffer without verifying that the size of the input
buffer is less than the size of the output buffer, leading to a buffer overflow.
Extended Description
A buffer overflow condition exists when a product attempts to put more data in a buffer than it can
hold, or when it attempts to put data in a memory area outside of the boundaries of a buffer. The
simplest type of error, and the most common cause of buffer overflows, is the "classic" case in
which the product copies the buffer without restricting how much is copied. Other variants exist, but
the existence of a classic overflow strongly suggests that the programmer is not considering even
the most basic of security protections.
Relationships
The table(s) below shows the weaknesses and high level categories that are related to this
weakness. These relationships are defined as ChildOf, ParentOf, MemberOr and give insight to
similar items that may exist at higher and lower levels of abstraction. In addition, relationships such
as PeerOf and CanAlsoBe are defined to show similar weaknesses that may want to be explored.
Relevant to the view "Research Concepts" (CWE-1000)
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')