Hardware debug modes or internal states can bypass critical system lock protections, allowing unauthorized changes to device configuration.
Many hardware systems use a lock bit—often set by trusted firmware like a BIOS or bootloader during startup—to permanently protect crucial configuration registers. Once this lock is engaged, it should prevent any further modification to settings that control system security, such as memory protection units. However, if the hardware design includes special debug modes or internal testing states, these privileged pathways can sometimes override the lock, defeating its primary purpose. This creates a significant vulnerability because an attacker with access to these debug features can alter foundational system configurations after they were supposedly locked down. Developers must ensure that hardware lock mechanisms are truly immutable and that all debug and test modes are thoroughly assessed and disabled before deployment to prevent such overrides.
Impact: Bypass Protection Mechanism
Bypass of lock bit allows access and modification of system configuration even when the lock bit is set.
Effectiveness: High
module Locked_register_example ( input [15:0] Data_in, input Clk, input resetn, input write, input Lock, input scan_mode, input debug_unlocked, output reg [15:0] Data_out );
reg lock_status;
always @(posedge Clk or negedge resetn)
verilogEither remove the debug and scan mode overrides or protect enabling of these modes so that only trusted and authorized users may enable these modes.
... always @(posedge clk_i)
verilog
if(~(rst_ni && ~jtag_unlock && ~rst_9))**
verilog
...
... always @(posedge clk_i)
verilog
if(~(rst_ni && ~rst_9))**
verilog
...