This vulnerability occurs when hardware access control policies are inconsistent, allowing an agent with control privileges to modify write permissions even when it shouldn't have direct write access.
Modern hardware systems, like integrated circuits and security engines, often protect critical resources (encryption keys, device configurations) with layered policies. A control policy governs who can access a resource and change permissions, while a write policy specifically controls modification rights. The security flaw emerges when these two policies don't align—an agent listed in the control policy but omitted from the write policy might still manipulate the write permissions register. This inconsistency creates a dangerous privilege escalation path. An untrusted or compromised agent can insert itself into the write policy, gaining unauthorized write access. The consequences are severe: sensitive data or encryption keys can be leaked, and fundamental device configuration can be maliciously altered, completely undermining system security.
Impact: Modify MemoryRead MemoryDoS: Crash, Exit, or RestartExecute Unauthorized Code or CommandsGain Privileges or Assume IdentityBypass Protection MechanismRead Files or DirectoriesReduce Reliability
| Register | Field description |
|---|---|
| AES_KEY_CONTROL_POLICY | Controls which agents can write to READ_POLICY and WRITE_POLICY registers [31:0] Default 0x00000018 |
| AES_KEY_READ_POLICY | Controls which agents can read the AES-key registers [31:0] Default 0x00000002 |
| AES_KEY_WRITE_POLICY | Controls which agents can write to the AES-key registers [31:0] Default 0x00000004 |
| Register | Field description |
|---|---|
| AES_KEY_CONTROL_POLICY | [31:0] Default 0x00000010 |
| AES_KEY_READ_POLICY | [31:0] Default 0x00000002 |
| AES_KEY_WRITE_POLICY | [31:0] Default 0x00000004 |