The operating conditions of hardware may change in ways that cause unexpected behavior to occur, including the skipping of security-critical CPU instructions. Generally, this can occur due to electrical disturbances or when the device operates outside of its expected conditions.
In practice, application code may contain conditional branches that are security-sensitive (e.g., accepting or rejecting a user-provided password). These conditional branches are typically implemented by a single conditional branch instruction in the program binary which, if skipped, may lead to effectively flipping the branch condition - i.e., causing the wrong security-sensitive branch to be taken. This affects processes such as firmware authentication, password verification, and other security-sensitive decision points.
Attackers can use fault injection techniques to alter the operating conditions of hardware so that security-critical instructions are skipped more frequently or more reliably than they would in a "natural" setting.
Scope | Impact | Likelihood |
---|---|---|
Confidentiality Integrity Authentication | Bypass Protection Mechanism, Alter Execution Logic, Unexpected State Note: Depending on the context, instruction skipping can have a broad range of consequences related to the generic bypassing of security critical code. | High |
References | Description |
---|---|
CVE-2019-15894 | fault injection attack bypasses the verification mode, potentially allowing arbitrary code execution. |
CAPEC-ID | Attack Pattern Name |
---|---|
CAPEC-624 | Hardware Fault Injection The adversary uses disruptive signals or events, or alters the physical environment a device operates in, to cause faulty behavior in electronic devices. This can include electromagnetic pulses, laser pulses, clock glitches, ambient temperature extremes, and more. When performed in a controlled manner on devices performing cryptographic operations, this faulty behavior can be exploited to derive secret key information. |
CAPEC-625 | Mobile Device Fault Injection Fault injection attacks against mobile devices use disruptive signals or events (e.g. electromagnetic pulses, laser pulses, clock glitches, etc.) to cause faulty behavior. When performed in a controlled manner on devices performing cryptographic operations, this faulty behavior can be exploited to derive secret key information. Although this attack usually requires physical control of the mobile device, it is non-destructive, and the device can be used after the attack without any indication that secret keys were compromised. |
Name | Organization | Date | Date release | Version |
---|---|---|---|---|
Jasper van Woudenberg | Riscure | 4.3 |
Name | Organization | Date | Comment |
---|---|---|---|
Jasper van Woudenberg | Riscure | ||
CWE Content Team | MITRE | updated Description, Functional_Areas, Potential_Mitigations, References | |
CWE Content Team | MITRE | updated Demonstrative_Examples, Description, Detection_Factors, Maintenance_Notes, Name, Observed_Examples, Potential_Mitigations, References, Relationships, Weakness_Ordinalities | |
CWE Content Team | MITRE | updated Potential_Mitigations, References, Relationships | |
CWE Content Team | MITRE | updated Relationships | |
CWE Content Team | MITRE | updated References | |
CWE Content Team | MITRE | updated Potential_Mitigations, Related_Attack_Patterns | |
CWE Content Team | MITRE | updated References, Relationships | |
CWE Content Team | MITRE | updated Mapping_Notes |