2095
the AES-Key registers. To resolve this, a register AES_KEY_ACCESS_POLICY can be defined to
provide necessary, access controls:
New Policy:
The AES_KEY_ACCESS_POLICY register defines which agents with a Security Token in the
transaction can access the AES-key registers. Each bit in this 32-bit register defines a Security
Token. There could be a maximum of 32 security Tokens that are allowed access to the AES-key
registers. The number of the bit when set (i.e., "1") allows respective action from an agent whose
identity matches the number of the bit and, if "0" (i.e., Clear), disallows the respective action to that
corresponding agent. Thus, any bus master with Security Token "01" is allowed access to the AESKey
registers. Below is the Pseudo Code for policy encoding:
Example Language: (Good)
Security_Token[4:0] = Bus_transaction[15:11]
If (AES_KEY_ACCESS_POLICY[Security_Token] == "1")
Allow access to AES-Key registers
Else
Deny access to AES-Key registers
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 1198 Privilege Separation and Access Control Issues 1194 2470
MemberOf 1396 Comprehensive Categorization: Access Control 1400 2519
Related Attack Patterns
CAPEC-ID Attack Pattern Name
121 Exploit Non-Production Interfaces
681 Exploitation of Improperly Controlled Hardware Security Identifiers
References
[REF-1093]Brandon Hill. "Huge Intel CPU Bug Allegedly Causes Kernel Memory Vulnerability With
Up To 30% Performance Hit In Windows And Linux". 2018 January 2. < https://hothardware.com/
news/intel-cpu-bug-kernel-memory-isolation-linux-windows-macos >.2023-04-07.
CWE-1268: Policy Privileges are not Assigned Consistently Between Control
and Data Agents
Weakness ID : 1268
Structure : Simple
Abstraction : Base
Description
The product's hardware-enforced access control for a particular resource improperly accounts for
privilege discrepancies between control and write policies.
Extended Description
Integrated circuits and hardware engines may provide access to resources (device-configuration,
encryption keys, etc.) belonging to trusted firmware or software modules (commonly set by a BIOS
or a bootloader). These accesses are typically controlled and limited by the hardware. Hardware
design access control is sometimes implemented using a policy. A policy defines which entity or
CWE Version 4.14
CWE-1268: Policy Privileges are not Assigned Consistently Between Control and Data Agents
CWE-1268: Policy Privileges are not Assigned
Consistently Between Control and Data Agents 2096
agent may or may not be allowed to perform an action. When a system implements multiple levels
of policies, a control policy may allow direct access to a resource as well as changes to the policies
themselves.
Resources that include agents in their control policy but not in their write policy could
unintentionally allow an untrusted agent to insert itself in the write policy register. Inclusion in the
write policy register could allow a malicious or misbehaving agent write access to resources. This
action could result in security compromises including leaked information, leaked encryption keys, or
modification of device configuration.
Relationships
The table(s) below shows the weaknesses and high level categories that are related to this
weakness. These relationships are defined as ChildOf, ParentOf, MemberOr and give insight to
similar items that may exist at higher and lower levels of abstraction. In addition, relationships such
as PeerOf and CanAlsoBe are defined to show similar weaknesses that may want to be explored.
Relevant to the view "Research Concepts" (CWE-1000)
Nature Type ID Name Page
ChildOf 284 Improper Access Control 680
Applicable Platforms
Language : Not Language-Specific (Prevalence = Undetermined)
Operating_System : Not OS-Specific (Prevalence = Undetermined)
Architecture : Not Architecture-Specific (Prevalence = Undetermined)
Technology : Not Technology-Specific (Prevalence = Undetermined)
Common Consequences
Scope Impact Likelihood
Confidentiality
Integrity
Availability
Access Control
Modify Memory
Read Memory
DoS: Crash, Exit, or Restart
Execute Unauthorized Code or Commands
Gain Privileges or Assume Identity
Bypass Protection Mechanism
Read Files or Directories
Reduce Reliability
High
Potential Mitigations
Phase: Architecture and Design
Phase: Implementation
Access-control-policy definition and programming flow must be sufficiently tested in pre-silicon
and post-silicon testing.
Demonstrative Examples
Example 1:
Consider a system of seven registers for storing and configuring an AES key for encryption or
decryption.
Four 32-bit registers are used to store a 128-bit AES key. The names of those registers
are AES_ENC_DEC_KEY_0, AES_ENC_DEC_KEY_1, AES_ENC_DEC_KEY_2, and
AES_ENC_DEC_KEY_3. Collectively these are referred to as the AES Key registers.
CWE Version 4.14
CWE-1268: Policy Privileges are not Assigned Consistently Between Control and Data Agents
CWE-1268: Policy Privileges are not Assigned
Consistently Between Control and Data Agents