591
[REF-6]Katrina Tsipenyuk, Brian Chess and Gary McGraw. "Seven Pernicious Kingdoms: A
Taxonomy of Software Security Errors". NIST Workshop on Software Security Assurance Tools
Techniques and Metrics. 2005 November 7. NIST. < https://samate.nist.gov/SSATTM_Content/
papers/Seven%20Pernicious%20Kingdoms%20-%20Taxonomy%20of%20Sw%20Security
%20Errors%20-%20Tsipenyuk%20-%20Chess%20-%20McGraw.pdf >.
CWE-244: Improper Clearing of Heap Memory Before Release ('Heap
Inspection')
Weakness ID : 244
Structure : Simple
Abstraction : Variant
Description
Using realloc() to resize buffers that store sensitive information can leave the sensitive information
exposed to attack, because it is not removed from memory.
Extended Description
When sensitive data such as a password or an encryption key is not removed from memory, it
could be exposed to an attacker using a "heap inspection" attack that reads the sensitive data
using memory dumps or other methods. The realloc() function is commonly used to increase the
size of a block of allocated memory. This operation often requires copying the contents of the old
memory block into a new and larger block. This operation leaves the contents of the original block
intact but inaccessible to the program, preventing the program from being able to scrub sensitive
data from memory. If an attacker can later examine the contents of a memory dump, the sensitive
data could be exposed.
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)
Nature Type ID Name Page
ChildOf 226 Sensitive Information in Resource Not Removed Before
Reuse