Missing Protection Mechanism for Alternate Hardware Interface

Draft Base
Structure: Simple
Description

This vulnerability occurs when a hardware component's security controls only protect the primary access path, leaving alternate interfaces unprotected. Attackers can bypass intended restrictions by accessing sensitive assets through these unguarded backdoors, such as shadow registers or other external-facing ports.

Extended Description

Modern chips and Systems-on-Chip (SoCs) often contain multiple access paths to critical internal registers—through interfaces like PCIe, USB, UART, or SMBus. If access controls are only enforced on one primary interface (e.g., PCIe), an attacker can simply route malicious transactions through an alternate, unprotected interface (like UART or USB) to modify or read protected registers, completely bypassing the intended security layer. Another common bypass involves shadow or mirror registers, which are duplicate registers that temporarily hold data before syncing with a main register. These are often implemented for performance or debugging purposes. If these shadow registers lack the same access protections as their primary counterparts, attackers can directly target them to alter system state, compromise security configurations, or leak sensitive information, effectively undermining the chip's entire protection scheme.

Common Consequences 1
Scope: ConfidentialityIntegrityAvailabilityAccess Control

Impact: Modify MemoryRead MemoryDoS: Resource Consumption (Other)Execute Unauthorized Code or CommandsGain Privileges or Assume IdentityAlter Execution LogicBypass Protection MechanismQuality Degradation

Potential Mitigations 3
Phase: Requirements
Protect assets from accesses against all potential interfaces and alternate paths.

Effectiveness: Defense in Depth

Phase: Architecture and Design
Protect assets from accesses against all potential interfaces and alternate paths.

Effectiveness: Defense in Depth

Phase: Implementation
Protect assets from accesses against all potential interfaces and alternate paths.

Effectiveness: Defense in Depth

Demonstrative Examples 1

ID : DX-176

Register SECURE_ME is located at address 0xF00. A mirror of this register called COPY_OF_SECURE_ME is at location 0x800F00. The register SECURE_ME is protected from malicious agents and only allows access to select, while COPY_OF_SECURE_ME is not. Access control is implemented using an allowlist (as indicated by acl_oh_allowlist). The identity of the initiator of the transaction is indicated by the one hot input, incoming_id. This is checked against the acl_oh_allowlist (which contains a list of initiators that are allowed to access the asset). Though this example is shown in Verilog, it will apply to VHDL as well.

Code Example:

Informative
Verilog

module foo_bar(data_out, data_in, incoming_id, address, clk, rst_n); output [31:0] data_out; input [31:0] data_in, incoming_id, address; input clk, rst_n; wire write_auth, addr_auth; reg [31:0] data_out, acl_oh_allowlist, q; assign write_auth = | (incoming_id & acl_oh_allowlist) ? 1 : 0; always @*

verilog

Code Example:

Bad
Verilog

assign addr_auth = (address == 32'hF00) ? 1: 0;

The bugged line of code is repeated in the Bad example above. The weakness arises from the fact that the SECURE_ME register can be modified by writing to the shadow register COPY_OF_SECURE_ME. The address of COPY_OF_SECURE_ME should also be included in the check. That buggy line of code should instead be replaced as shown in the Good Code Snippet below.

Code Example:

Good
Verilog

assign addr_auth = (address == 32'hF00 || address == 32'h800F00) ? 1: 0;

Observed Examples 5
CVE-2022-38399Missing protection mechanism on serial connection allows for arbitrary OS command execution.
CVE-2020-9285Mini-PCI Express slot does not restrict direct memory access.
CVE-2020-8004When the internal flash is protected by blocking access on the Data Bus (DBUS), it can still be indirectly accessed through the Instruction Bus (IBUS).
CVE-2017-18293When GPIO is protected by blocking access to corresponding GPIO resource registers, protection can be bypassed by writing to the corresponding banked GPIO registers instead.
CVE-2020-15483monitor device allows access to physical UART debug port without authentication
Applicable Platforms
Languages:
Not Language-Specific : Undetermined
Technologies:
Microcontroller Hardware : UndeterminedProcessor Hardware : UndeterminedBus/Interface Hardware : UndeterminedNot Technology-Specific : Undetermined
Modes of Introduction
Architecture and Design
Implementation