Description
The register contents used for attestation or measurement reporting data to verify boot flow are modifiable by an adversary.
A System-on-Chip (SoC) implements secure boot or verified boot. During this boot flow, the SoC often measures the code that it authenticates. The measurement is usually done by calculating the one-way hash of the code binary and extending it to the previous hash. The hashing algorithm should be a Secure One-Way hash function. The final hash, i.e., the value obtained after the completion of the boot flow, serves as the measurement data used in reporting or in attestation. The calculated hash is often stored in registers that can later be read by the party of interest to determine tampering of the boot flow. A common weakness is that the contents in these registers are modifiable by an adversary, thus spoofing the measurement.
Potential Impact
Confidentiality
Read Memory, Read Application Data
Mitigations & Prevention
Measurement data should be stored in registers that are read-only or otherwise have access controls that prevent modification by an untrusted agent.
Related Weaknesses
Frequently Asked Questions
What is CWE-1283?
CWE-1283 (Mutable Attestation or Measurement Reporting Data) is a software weakness identified by MITRE's Common Weakness Enumeration. It is classified as a Base-level weakness. The register contents used for attestation or measurement reporting data to verify boot flow are modifiable by an adversary.
How can CWE-1283 be exploited?
Attackers can exploit CWE-1283 (Mutable Attestation or Measurement Reporting Data) to read memory, read application data. This weakness is typically introduced during the Architecture and Design, Implementation phase of software development.
How do I prevent CWE-1283?
Key mitigations include: Measurement data should be stored in registers that are read-only or otherwise have access controls that prevent modification by an untrusted agent.
What is the severity of CWE-1283?
CWE-1283 is classified as a Base-level weakness (Medium abstraction). Its actual severity depends on the specific context and how the weakness manifests in your application.