Cleartext Storage of Sensitive Information in Memory

Draft Variant
Structure: Simple
Description

This vulnerability occurs when an application stores sensitive data, such as passwords or encryption keys, in memory without any form of encryption or protection.

Extended Description

When sensitive information is kept in cleartext within memory, it becomes vulnerable through several common scenarios. This data can be written to disk during system swapping, captured in a crash dump file, or simply remain resident if the memory is not securely wiped before being freed. Even if an attacker lacks direct access to running memory, these secondary exposures create significant risk. While this might seem like a high-privilege attack surface, the real danger lies in these persistent artifacts. Core dumps and swap files often have weak permissions or are bundled into diagnostic archives that are inadvertently shared. Furthermore, uncleared memory can be leaked through other software bugs, allowing attackers to harvest credentials or keys long after the application has finished using them.

Common Consequences 1
Scope: Confidentiality

Impact: Read Memory

Observed Examples 3
CVE-2001-1517Sensitive authentication information in cleartext in memory.
CVE-2001-0984Password protector leaves passwords in memory when window is minimized, even when "clear password when minimized" is set.
CVE-2003-0291SSH client does not clear credentials from memory.
Applicable Platforms
Languages:
Not Language-Specific : Undetermined
Modes of Introduction
Architecture and Design
Affected Resources
  1. Memory
Taxonomy Mapping
  • PLOVER
  • Software Fault Patterns
Notes
RelationshipThis could be a resultant weakness, e.g. if the compiler removes code that was intended to wipe memory.
TerminologyDifferent people use "cleartext" and "plaintext" to mean the same thing: the lack of encryption. However, within cryptography, these have more precise meanings. Plaintext is the information just before it is fed into a cryptographic algorithm, including already-encrypted text. Cleartext is any information that is unencrypted, although it might be in an encoded form that is not easily human-readable (such as base64 encoding).