This vulnerability occurs when a hardware design uses a single lock bit to protect a large, coarse block of memory addresses. This lack of granularity creates a conflict: the system needs to lock critical configuration settings early for security, but software also needs to write to other parts of that same address region during normal operation, which the lock incorrectly prevents.
In many systems, a trusted boot process (like the BIOS or bootloader) sets a hardware lock bit to permanently freeze critical configuration registers, preventing malware or errors from altering them later. This lock typically protects an entire predefined address region, not individual registers. However, if this protected region is too large and not finely segmented, it becomes a security and functionality trade-off. Setting the lock too early can block legitimate software from updating necessary settings within that same region, while not setting it leaves the system vulnerable. Fixing this conflict after manufacturing requires a hardware redesign, as the lock granularity is baked into the silicon.
Impact: Other
System security configuration cannot be defined in a way that does not conflict with functional requirements of device.
| Address | Register |
|---|---|
| 0x0000 | SYS_LOCK: 32 bit system configuration lock register, each bit is write-1-once |
| 0x0004 | SECURITY_FEATURE_ENABLE: 32 bit register controlling enabling of security features |
| ... | |
| 0x0310 | SW_MODE: 32 bit Software Mode indication register |
other
| --- | --- | | 0x0000 - 0x03FF | SYS_LOCK[0] | | 0x0400 - 0x07FF | SYS_LOCK[1] | | ... | | | 0x7C00 - 0x7FFF | SYS_LOCK[31] |