COMMON WEAKNESS ENUMERATIONDraft

CWE-1328

Security Version Number Mutable to Older Versions

Security-version number in hardware is mutable, resulting in the ability to downgrade (roll-back) the boot firmware to vulnerable code versions.

Abstraction

Base

Structure

Simple

Likelihood of Exploit

Medium

Understand the problem

What is the problem?

Security-version number in hardware is mutable, resulting in the ability to downgrade (roll-back) the boot firmware to vulnerable code versions.

Extended description

A System-on-Chip (SoC) implements secure boot or verified boot. It might support a security version number, which prevents downgrading the current firmware to a vulnerable version. Once downgraded to a previous version, an adversary can launch exploits on the SoC and thus compromise the security of the SoC. These downgrade attacks are also referred to as roll-back attacks. The security version number must be stored securely and persistently across power-on resets. A common weakness is that the security version number is modifiable by an adversary, allowing roll-back or downgrade attacks or, under certain circumstances, preventing upgrades (i.e. Denial-of-Service on upgrades). In both cases, the SoC is in a vulnerable state.

Root cause

How and when does the problem arise?

Lifecycle phase

Architecture and Design

Lifecycle phase

Implementation

Such issues could be introduced during hardware architecture and design, and can be identified later during testing or system configuration phases.

Risk

What does successful exploitation lead to?

Other

Affected security scopes: Confidentiality, Integrity, Authentication, Authorization

Impact includes roll-back or downgrade to a vulnerable version of the firmware or DoS (prevent upgrades).

Defence

How is it prevented and fixed?

Architecture and Design

Architecture and design approach

Detail
When architecting the system, security version data should be designated for storage in registers that are either read-only or have access controls that prevent modification by an untrusted agent.

Implementation

Implementation-phase defence

Detail
During implementation and test, security version data should be demonstrated to be read-only and access controls should be validated.

Verification

How is it detected?

Automated Dynamic Analysis

High
Mutability of stored security version numbers and programming with older firmware images should be part of automated testing.

Architecture or Design Review

High
Anti-roll-back features should be reviewed as part of Architecture or Design review.