Cleartext Storage of Sensitive Information in Memory

Draft Variant
Structure: Simple
Description

The product stores sensitive information in cleartext in memory.

Extended Description

The sensitive memory might be saved to disk, stored in a core dump, or remain uncleared if the product crashes, or if the programmer does not properly clear the memory before freeing it. It could be argued that such problems are usually only exploitable by those with administrator privileges. However, swapping could cause the memory to be written to disk and leave it accessible to physical attack afterwards. Core dump files might have insecure permissions or be stored in archive files that are accessible to untrusted people. Or, uncleared sensitive memory might be inadvertently exposed to attackers due to another weakness.

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).