COMMON WEAKNESS ENUMERATIONIncomplete

CWE-1282

Assumed-Immutable Data is Stored in Writable Memory

Immutable data, such as a first-stage bootloader, device identifiers, and "write-once" configuration settings are stored in writable memory that can be re-programmed or updated in the field.

Abstraction

Base

Structure

Simple

Likelihood of Exploit

Medium

Understand the problem

What is the problem?

Immutable data, such as a first-stage bootloader, device identifiers, and "write-once" configuration settings are stored in writable memory that can be re-programmed or updated in the field.

Extended description

Security services such as secure boot, authentication of code and data, and device attestation all require assets such as the first stage bootloader, public keys, golden hash digests, etc. which are implicitly trusted. Storing these assets in read-only memory (ROM), fuses, or one-time programmable (OTP) memory provides strong integrity guarantees and provides a root of trust for securing the rest of the system. Security is lost if assets assumed to be immutable can be modified.

Root cause

How and when does the problem arise?

Lifecycle phase

Implementation

Keys, code, configuration settings, and other data should be programmed in write-once or read-only memory instead of writable memory.

Risk

What does successful exploitation lead to?

Varies by Context

Affected security scopes: Integrity

Defence

How is it prevented and fixed?

Implementation

Implementation-phase defence

Detail
All immutable code or data should be programmed into ROM or write-once memory.