2228
Extended Description
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.
Relationships
The table(s) below shows the weaknesses and high level categories that are related to this
weakness. These relationships are defined as ChildOf, ParentOf, MemberOr and give insight to
similar items that may exist at higher and lower levels of abstraction. In addition, relationships such
as PeerOf and CanAlsoBe are defined to show similar weaknesses that may want to be explored.
Relevant to the view "Research Concepts" (CWE-1000)
Nature Type ID Name Page
ChildOf 1384 Improper Handling of Physical or Environmental Conditions 2257
Relevant to the view "Hardware Design" (CWE-1194)
Nature Type ID Name Page
PeerOf 1247 Improper Protection Against Voltage and Clock Glitches 2044
Weakness Ordinalities
Primary :
Applicable Platforms
Language : Not Language-Specific (Prevalence = Undetermined)
Operating_System : Not OS-Specific (Prevalence = Undetermined)
Architecture : Not Architecture-Specific (Prevalence = Undetermined)
Technology : System on Chip (Prevalence = Undetermined)
Common Consequences
Scope Impact Likelihood
Confidentiality
Integrity
Authentication
Bypass Protection Mechanism
Alter Execution Logic
Unexpected State
Depending on the context, instruction skipping can have
a broad range of consequences related to the generic
bypassing of security critical code.
High
Detection Methods
Automated Static Analysis
This weakness can be found using automated static analysis once a developer has indicated
which code paths are critical to protect.
CWE Version 4.14
CWE-1332: Improper Handling of Faults that Lead to Instruction Skips
CWE-1332: Improper Handling of Faults that Lead to Instruction Skips