Description
Register lock bit protection disables changes to system configuration once the bit is set. Some of the protected registers or lock bits become programmable after power state transitions (e.g., Entry and wake from low power sleep modes) causing the system configuration to be changeable.
Devices may allow device configuration controls which need to be programmed after device power reset via a trusted firmware or software module (commonly set by BIOS/bootloader) and then locked from any further modification. This action is commonly implemented using a programmable lock bit, which, when set, disables writes to a protected set of registers or address regions. After a power state transition, the lock bit is set to unlocked. Some common weaknesses that can exist in such a protection scheme are that the lock gets cleared, the values of the protected registers get reset, or the lock become programmable.
Potential Impact
Access Control
Modify Memory
Demonstrative Examples
module reglk_wrapper #(
...
always @(posedge clk_i)
begin
if(~(rst_ni && ~jtag_unlock && ~rst_9))
begin
for (j=0; j < 6; j=j+1) begin
reglk_mem[j] <= 'h0;
end
end
...module reglk_wrapper #(
...
always @(posedge clk_i)
begin
if(~(rst_ni && ~jtag_unlock && ~rst_9))
begin
for (j=0; j < 6; j=j+1) begin
reglk_mem[j] <= 'hffffffff;
end
end
...Mitigations & Prevention
Related Weaknesses
Frequently Asked Questions
What is CWE-1232?
CWE-1232 (Improper Lock Behavior After Power State Transition) is a software weakness identified by MITRE's Common Weakness Enumeration. It is classified as a Base-level weakness. Register lock bit protection disables changes to system configuration once the bit is set. Some of the protected registers or lock bits become programmable after power state transitions (e.g., Entry a...
How can CWE-1232 be exploited?
Attackers can exploit CWE-1232 (Improper Lock Behavior After Power State Transition) to modify memory. This weakness is typically introduced during the Architecture and Design, Implementation phase of software development.
How do I prevent CWE-1232?
Key mitigations include:
What is the severity of CWE-1232?
CWE-1232 is classified as a Base-level weakness (Medium abstraction). Its actual severity depends on the specific context and how the weakness manifests in your application.