2201
Potential Mitigations
Phase: Architecture and Design
Phase: Implementation
1. Redundancy - By replicating critical operations and comparing the two outputs can help
indicate whether a fault has been injected. 2. Error detection and correction codes - Gay, Mael,
et al. proposed a new scheme that not only detects faults injected by a malicious adversary but
also automatically corrects single nibble/byte errors introduced by low-multiplicity faults. 3. Fail
by default coding - When checking conditions (switch or if) check all possible cases and fail by
default because the default case in a switch (or the else part of a cascaded if-else-if construct)
is used for dealing with the last possible (and valid) value without checking. This is prone to fault
injection because this alternative is easily selected as a result of potential data manipulation
[REF-1141]. 4. Random Behavior - adding random delays before critical operations, so that
timing is not predictable. 5. Program Flow Integrity Protection - The program flow can be secured
by integrating run-time checking aiming at detecting control flow inconsistencies. One such
example is tagging the source code to indicate the points not to be bypassed [REF-1147]. 6.
Sensors - Usage of sensors can detect variations in voltage and current. 7. Shields - physical
barriers to protect the chips from malicious manipulation.
Demonstrative Examples
Example 1:
In many devices, security related information is stored in fuses. These fuses are loaded into
shadow registers at boot time. Disturbing this transfer phase with EM-FI can lead to the shadow
registers storing erroneous values potentially resulting in reduced security.
Colin O'Flynn has demonstrated an attack scenario which uses electro-magnetic glitching
during booting to bypass security and gain read access to flash, read and erase access to
shadow memory area (where the private password is stored). Most devices in the MPC55xx and
MPC56xx series that include the Boot Assist Module (BAM) (a serial or CAN bootloader mode) are
susceptible to this attack. In this paper, a GM ECU was used as a real life target. While the success
rate appears low (less than 2 percent), in practice a success can be found within 1-5 minutes once
the EMFI tool is setup. In a practical scenario, the author showed that success can be achieved
within 30-60 minutes from a cold start.
Observed Examples
Reference Description
CVE-2020-27211 Chain: microcontroller system-on-chip uses a register value stored in flash
to set product protection state on the memory bus and does not contain
protection against fault injection (CWE-1319) which leads to an incorrect
initialization of the memory bus (CWE-1419) causing the product to be in an
unprotected state.
https://www.cve.org/CVERecord?id=CVE-2020-27211
MemberOf Relationships
This MemberOf relationships table shows additional CWE Catgeories and Views that reference this
weakness as a member. This information is often useful in understanding where a weakness fits
within the context of external information sources.
Nature Type ID Name Page
MemberOf 1388 Physical Access Issues and Concerns 1194 2518
MemberOf 1413 Comprehensive Categorization: Protection Mechanism
Failure
1400 2542
Notes
Maintenance
CWE Version 4.14
CWE-1320: Improper Protection for Outbound Error Messages and Alert Signals
CWE-1320: Improper Protection for Outbound Error Messages and Alert Signals