Description
Security-version number in hardware is mutable, resulting in the ability to downgrade (roll-back) the boot firmware to vulnerable code versions.
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.
Potential Impact
Confidentiality, Integrity, Authentication, Authorization
Other
Demonstrative Examples
Mitigations & Prevention
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.
During implementation and test, security version data should be demonstrated to be read-only and access controls should be validated.
Detection Methods
- 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.
Related Weaknesses
Frequently Asked Questions
What is CWE-1328?
CWE-1328 (Security Version Number Mutable to Older Versions) is a software weakness identified by MITRE's Common Weakness Enumeration. It is classified as a Base-level weakness. Security-version number in hardware is mutable, resulting in the ability to downgrade (roll-back) the boot firmware to vulnerable code versions.
How can CWE-1328 be exploited?
Attackers can exploit CWE-1328 (Security Version Number Mutable to Older Versions) to other. This weakness is typically introduced during the Architecture and Design, Implementation phase of software development.
How do I prevent CWE-1328?
Key mitigations include: 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.
What is the severity of CWE-1328?
CWE-1328 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.