A race condition in the hardware logic results in undermining security guarantees of the system.
A race condition in logic circuits typically occurs when a logic gate gets inputs from signals that have traversed different paths while originating from the same source. Such inputs to the gate can change at slightly different times in response to a change in the source signal. This results in a timing error or a glitch (temporary or permanent) that causes the output to change to an unwanted state before settling back to the desired state. If such timing errors occur in access control logic or finite state machines that are implemented in security sensitive flows, an attacker might exploit them to circumvent existing protections.
Impact: Bypass Protection MechanismGain Privileges or Assume IdentityAlter Execution Logic
// 2x1 Multiplexor using logic-gates
module glitchEx(
verilogassign z <= and_out1 or and_out2 or (in0 and in1);
module dma # (...)(...); ...
verilog
pmpaddr_i** ), .conf_i ( pmpcfg_i ), .allow_o ( pmp_data_allow ) ); endmodule
module dma # (...)(...); ...
verilog
reg [7:0] [16-1:0] pmpcfg_reg;**
verilog
verilog
pmpaddr_reg <= pmpaddr_i;**
verilog
verilog