{"@ID": "1302", "@Name": "Missing Source Identifier in Entity Transactions on a System-On-Chip (SOC)", "@Abstraction": "Base", "@Structure": "Simple", "@Status": "Incomplete", "Description": "The product implements a security identifier mechanism to differentiate what actions are allowed or disallowed when a transaction originates from an entity, but the entity does not consistently include the necessary Security Identifier with a security-critical transaction.", "Related_Weaknesses": {"Related_Weakness": {"@Nature": "ChildOf", "@CWE_ID": "1294", "@View_ID": "1000", "@Ordinal": "Primary"}}, "Weakness_Ordinalities": {"Weakness_Ordinality": {"Ordinality": "Primary"}}, "Applicable_Platforms": {"Language": {"@Class": "Not Language-Specific", "@Prevalence": "Undetermined"}, "Operating_System": {"@Class": "Not OS-Specific", "@Prevalence": "Undetermined"}, "Architecture": {"@Class": "Not Architecture-Specific", "@Prevalence": "Undetermined"}, "Technology": {"@Class": "Not Technology-Specific", "@Prevalence": "Undetermined"}}, "Background_Details": {"Background_Detail": {"xhtml:p": "In a System-On-Chip (SoC), various integrated circuits and hardware engines generate transactions such as to access (reads/writes) assets or perform certain actions (e.g., reset, fetch, compute). A typical transaction is comprised of source identity (to identify the originator of the transaction) and a destination identity (to route the transaction to the respective entity) in addition to much more information in the message. Sometimes the transactions are qualified with a Security Identifier.  This Security Identifier helps the destination agent decide on the set of allowed or disallowed actions.", "#text_blocks": ["In a System-On-Chip (SoC), various integrated circuits and hardware engines generate transactions such as to access (reads/writes) assets or perform certain actions (e.g., reset, fetch, compute). A typical transaction is comprised of source identity (to identify the originator of the transaction) and a destination identity (to route the transaction to the respective entity) in addition to much more information in the message. Sometimes the transactions are qualified with a Security Identifier.  This Security Identifier helps the destination agent decide on the set of allowed or disallowed actions."]}}, "Modes_Of_Introduction": {"Introduction": [{"Phase": "Architecture and Design", "Note": "Such issues could be introduced during hardware architecture and design and identified later during Testing or System Configuration phases."}, {"Phase": "Implementation", "Note": "Such issues could be introduced during implementation and identified later during Testing or System Configuration phases."}]}, "Common_Consequences": {"Consequence": {"Scope": ["Confidentiality", "Integrity", "Availability", "Access Control"], "Impact": ["Modify Memory", "Read Memory", "DoS: Crash, Exit, or Restart", "Bypass Protection Mechanism", "Gain Privileges or Assume Identity", "Execute Unauthorized Code or Commands"], "Likelihood": "High", "Note": {"xhtml:p": "If the Security Identifier is missing, the destination agent might drop the message (resulting in an inadvertent Denial-of-Service (DoS)) or take inappropriate action by default in its attempt to execute the transaction, resulting in privilege escalation or provision of unintended access.", "#text_blocks": ["If the Security Identifier is missing, the destination agent might drop the message (resulting in an inadvertent Denial-of-Service (DoS)) or take inappropriate action by default in its attempt to execute the transaction, resulting in privilege escalation or provision of unintended access."]}}}, "Potential_Mitigations": {"Mitigation": [{"Phase": "Architecture and Design", "Description": "Transaction details must be reviewed for design inconsistency and common weaknesses."}, {"Phase": "Implementation", "Description": "Security identifier definition and programming flow must be tested in pre-silicon and post-silicon testing."}]}, "Demonstrative_Examples": {"Demonstrative_Example": {"Intro_Text": {"xhtml:p": ["Consider a system with a register for storing AES key for encryption or decryption. The key is of 128 bits implemented as a set of four 32-bit registers.  The key registers are assets, and the register AES_KEY_ACCESS_POLICY is defined to provide the necessary access controls.", "The access-policy register defines which agents with a security identifier in the transaction can access the AES-key registers. Each bit in this 32-bit register defines a security identifier. There could be a maximum of 32 security identifiers that are allowed accesses to the AES-key registers. The number of the bit when set (i.e., \"1\") allows for a respective action from an agent whose identity matches the number of the bit; if set to \"0\" (i.e., Clear), it disallows the respective action to that corresponding agent."], "#text_blocks": ["Consider a system with a register for storing AES key for encryption or decryption. The key is of 128 bits implemented as a set of four 32-bit registers.  The key registers are assets, and the register AES_KEY_ACCESS_POLICY is defined to provide the necessary access controls.", "The access-policy register defines which agents with a security identifier in the transaction can access the AES-key registers. Each bit in this 32-bit register defines a security identifier. There could be a maximum of 32 security identifiers that are allowed accesses to the AES-key registers. The number of the bit when set (i.e., \"1\") allows for a respective action from an agent whose identity matches the number of the bit; if set to \"0\" (i.e., Clear), it disallows the respective action to that corresponding agent."]}, "Example_Code": [{"@Nature": "Bad", "@Language": "Other", "xhtml:table": {"xhtml:tr": [{"xhtml:th": ["Register", "Field description"]}, {"xhtml:td": ["AES_ENC_DEC_KEY_0", "AES key [0:31] for encryption or decryption, Default 0x00000000"]}, {"xhtml:td": ["AES_ENC_DEC_KEY_1", "AES key [32:63] for encryption or decryption, Default 0x00000000"]}, {"xhtml:td": ["AES_ENC_DEC_KEY_2", "AES key [64:95] for encryption or decryption, Default 0x00000000"]}, {"xhtml:td": ["AES_ENC_DEC_KEY_4", "AES key [96:127] for encryption or decryption, Default 0x00000000"]}, {"xhtml:td": ["AES_KEY_ACCESS_POLICY", "[31:0] Default 0x00000004 - agent with Security Identifier \"2\" has access to AES_ENC_DEC_KEY_0 through AES_ENC_DEC_KEY_4 registers"]}]}, "#text_blocks": ["Register\n\t\t\t\t\t\t\t\tField description\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tAES_ENC_DEC_KEY_0\n\t\t\t\t\t\t\t\tAES key [0:31] for encryption or decryption, Default 0x00000000\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tAES_ENC_DEC_KEY_1\n\t\t\t\t\t\t\t\tAES key [32:63] for encryption or decryption, Default 0x00000000\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tAES_ENC_DEC_KEY_2\n\t\t\t\t\t\t\t\tAES key [64:95] for encryption or decryption, Default 0x00000000\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tAES_ENC_DEC_KEY_4\n\t\t\t\t\t\t\t\tAES key [96:127] for encryption or decryption, Default 0x00000000\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tAES_KEY_ACCESS_POLICY\n\t\t\t\t\t\t\t\t[31:0] Default 0x00000004 - agent with Security Identifier \"2\" has access to AES_ENC_DEC_KEY_0 through AES_ENC_DEC_KEY_4 registers"]}, {"@Nature": "Good", "@Language": "Other", "xhtml:table": {"xhtml:tr": [{"xhtml:th": ["Register", "Field description"]}, {"xhtml:td": ["AES_ENC_DEC_KEY_0", "AES key [0:31] for encryption or decryption, Default 0x00000000"]}, {"xhtml:td": ["AES_ENC_DEC_KEY_1", "AES key [32:63] for encryption or decryption, Default 0x00000000"]}, {"xhtml:td": ["AES_ENC_DEC_KEY_2", "AES key [64:95] for encryption or decryption, Default 0x00000000"]}, {"xhtml:td": ["AES_ENC_DEC_KEY_4", "AES key [96:127] for encryption or decryption, Default 0x00000000"]}, {"xhtml:td": ["AES_KEY_ACCESS_POLICY", "[31:0] Default 0x00000002 - agent with security identifier \"2\" has access to AES_ENC_DEC_KEY_0 through AES_ENC_DEC_KEY_4 registers"]}]}, "#text_blocks": ["Register\n\t\t\t\t\t\t\t\tField description\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tAES_ENC_DEC_KEY_0\n\t\t\t\t\t\t\t\tAES key [0:31] for encryption or decryption, Default 0x00000000\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tAES_ENC_DEC_KEY_1\n\t\t\t\t\t\t\t\tAES key [32:63] for encryption or decryption, Default 0x00000000\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tAES_ENC_DEC_KEY_2\n\t\t\t\t\t\t\t\tAES key [64:95] for encryption or decryption, Default 0x00000000\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tAES_ENC_DEC_KEY_4\n\t\t\t\t\t\t\t\tAES key [96:127] for encryption or decryption, Default 0x00000000\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tAES_KEY_ACCESS_POLICY\n\t\t\t\t\t\t\t\t[31:0] Default 0x00000002 - agent with security identifier \"2\" has access to AES_ENC_DEC_KEY_0 through AES_ENC_DEC_KEY_4 registers"]}], "Body_Text": ["The originator sends a transaction with no security identifier, i.e., meaning the value is \"0\" or NULL. The AES-Key-access register does not allow the necessary action and drops the transaction because the originator failed to include the required security identifier.", "The originator should send a transaction with Security Identifier \"2\" which will allow access to the AES-Key-access register and allow encryption and decryption operations."]}}, "Related_Attack_Patterns": {"Related_Attack_Pattern": [{"@CAPEC_ID": "121"}, {"@CAPEC_ID": "681"}]}, "Mapping_Notes": {"Usage": "Allowed", "Rationale": "This CWE entry is at the Base level of abstraction, which is a preferred level of abstraction for mapping to the root causes of vulnerabilities.", "Comments": "Carefully read both the name and description to ensure that this mapping is an appropriate fit. Do not try to 'force' a mapping to a lower-level Base/Variant simply to comply with this preferred level of abstraction.", "Reasons": {"Reason": {"@Type": "Acceptable-Use"}}}, "Content_History": {"Submission": {"Submission_Name": "Arun Kanuparthi, Hareesh Khattri, Parbati Kumar Manna", "Submission_Organization": "Intel Corporation", "Submission_Date": "2020-02-14", "Submission_Version": "4.2", "Submission_ReleaseDate": "2020-08-20"}, "Modification": [{"Modification_Name": "CWE Content Team", "Modification_Organization": "MITRE", "Modification_Date": "2021-07-20", "Modification_Version": "4.5", "Modification_ReleaseDate": "2021-07-20", "Modification_Comment": "updated Related_Attack_Patterns"}, {"Modification_Name": "CWE Content Team", "Modification_Organization": "MITRE", "Modification_Date": "2021-10-28", "Modification_Version": "4.6", "Modification_ReleaseDate": "2021-10-28", "Modification_Comment": "updated Demonstrative_Examples, Relationships"}, {"Modification_Name": "CWE Content Team", "Modification_Organization": "MITRE", "Modification_Date": "2022-04-28", "Modification_Version": "4.7", "Modification_ReleaseDate": "2022-04-28", "Modification_Comment": "updated Related_Attack_Patterns"}, {"Modification_Name": "CWE Content Team", "Modification_Organization": "MITRE", "Modification_Date": "2022-10-13", "Modification_Version": "4.9", "Modification_ReleaseDate": "2022-10-13", "Modification_Comment": "updated Demonstrative_Examples"}, {"Modification_Name": "CWE Content Team", "Modification_Organization": "MITRE", "Modification_Date": "2023-04-27", "Modification_Version": "4.11", "Modification_ReleaseDate": "2023-04-27", "Modification_Comment": "updated Relationships"}, {"Modification_Name": "CWE Content Team", "Modification_Organization": "MITRE", "Modification_Date": "2023-06-29", "Modification_Version": "4.12", "Modification_ReleaseDate": "2023-06-29", "Modification_Comment": "updated Mapping_Notes"}, {"Modification_Name": "CWE Content Team", "Modification_Organization": "MITRE", "Modification_Date": "2024-02-29", "Modification_Version": "4.14", "Modification_ReleaseDate": "2024-02-29", "Modification_Comment": "updated Description, Name"}, {"Modification_Name": "CWE Content Team", "Modification_Organization": "MITRE", "Modification_Date": "2025-12-11", "Modification_Version": "4.19", "Modification_ReleaseDate": "2025-12-11", "Modification_Comment": "updated Demonstrative_Examples, Weakness_Ordinalities"}, {"Modification_Name": "CWE Content Team", "Modification_Organization": "MITRE", "Modification_Date": "2026-10-28", "Modification_Version": "5.0", "Modification_ReleaseDate": "2026-10-28", "Modification_Comment": "updated Background_Details, Common_Consequences, Description"}], "Previous_Entry_Name": {"@Date": "2024-02-29", "#text": "Missing Security Identifier"}}, "entry_type": "Weakness"}
