2102
Example 1:
Consider a system with a register for storing an AES key for encryption or decryption. The key
is 128 bits long implemented as a set of four 32-bit registers. The key registers are assets, and
register, AES_KEY_ACCESS_POLICY, is defined to provide necessary access controls. The
access-policy register defines which agents, using a Security Token, may access the AES-key
registers. Each bit in this 32-bit register is used to define a Security Token. There could be a
maximum of 32 Security Tokens that are allowed access to the AES-key registers. When set (bit =
"1") bit number allows action from an agent whose identity matches that bit number. If Clear (bit =
"0") the action is disallowed for the corresponding agent.
Assume the system has two agents: a Main-controller and an Aux-controller. The respective
Security Tokens are "1" and "2".
An agent with a Security Token "1" has access to AES_ENC_DEC_KEY_0 through
AES_ENC_DEC_KEY_3 registers. As per the above access policy, the AES-Key-access policy
allows access to the AES-key registers if the security Token is "1".
Example Language: Other (Bad)
The SoC incorrectly generates Security Token "1" for every agent. In other words, both Main-controller and Aux-controller
are assigned Security Token "1".
Both agents have access to the AES-key registers.
Example Language: Other (Good)
The SoC should correctly generate Security Tokens, assigning "1" to the Main-controller and "2" to the Aux-controller
MemberOf Relationships
This MemberOf relationships table shows additional CWE Catgeories and Views that reference this
weakness as a member. This information is often useful in understanding where a weakness fits
within the context of external information sources.
Nature Type ID Name Page
MemberOf 1396 Comprehensive Categorization: Access Control 1400 2519
Related Attack Patterns
CAPEC-ID Attack Pattern Name
121 Exploit Non-Production Interfaces
633 Token Impersonation
681 Exploitation of Improperly Controlled Hardware Security Identifiers
CWE-1271: Uninitialized Value on Reset for Registers Holding Security
Settings
Weakness ID : 1271
Structure : Simple
Abstraction : Base
Description
Security-critical logic is not set to a known value on reset.
Extended Description
When the device is first brought out of reset, the state of registers will be indeterminate if they have
not been initialized by the logic. Before the registers are initialized, there will be a window during
which the device is in an insecure state and may be vulnerable to attack.
CWE Version 4.14
CWE-1271: Uninitialized Value on Reset for Registers Holding Security Settings
CWE-1271: Uninitialized Value on Reset for Registers Holding Security Settings