Description
The product uses a fabric bridge for transactions between two Intellectual Property (IP) blocks, but the bridge does not properly perform the expected privilege, identity, or other access control checks between those IP blocks.
In hardware designs, different IP blocks are connected through interconnect-bus fabrics (e.g. AHB and OCP). Within a System on Chip (SoC), the IP block subsystems could be using different bus protocols. In such a case, the IP blocks are then linked to the central bus (and to other IP blocks) through a fabric bridge. Bridges are used as bus-interconnect-routing modules that link different protocols or separate, different segments of the overall SoC interconnect. For overall system security, it is important that the access-control privileges associated with any fabric transaction are consistently maintained and applied, even when they are routed or translated by a fabric bridge. A bridge that is connected to a fabric without security features forwards transactions to the slave without checking the privilege level of the master and results in a weakness in SoC access-control security. The same weakness occurs if a bridge does not check the hardware identity of the transaction received from the slave interface of the bridge.
Potential Impact
Confidentiality, Integrity, Access Control, Availability
DoS: Crash, Exit, or Restart, Bypass Protection Mechanism, Read Memory, Modify Memory
Demonstrative Examples
...
module aes0_wrapper #(...)(...);
...
input logic acct_ctrl_i;
...
axi_lite_interface #(...
) axi_lite_interface_i (
...
.en_o ( en_acct ),
...
..);
assign en = en_acct && acct_ctrl_i;
...
endmodule
...
module clint #(...)(...);
...
axi_lite_interface #(...
) axi_lite_interface_i (
...
.en_o ( en ),
...
);
...
endmodulemodule clint #(...
) (
...
input logic acct_ctrl_i,
...
);
logic en, en_acct;
...
axi_lite_interface #(...
) axi_lite_interface_i (
...
.en_o ( en_acct ),
...
);
assign en = en_acct && acct_ctrl_i;
...
endmoduleMitigations & Prevention
Ensure that the design includes provisions for access-control checks in the bridge for both upstream and downstream transactions.
Implement access-control checks in the bridge for both upstream and downstream transactions.
Detection Methods
- Simulation / Emulation High — RTL simulation to ensure that bridge-access controls are implemented properly.
- Formal Verification High — Formal verification of bridge RTL to ensure that access control cannot be bypassed.
Real-World CVE Examples
| CVE ID | Description |
|---|---|
| CVE-2019-6260 | Baseboard Management Controller (BMC) device implements Advanced High-performance Bus (AHB) bridges that do not require authentication for arbitrary read and write access to the BMC's physical address |
Related Weaknesses
Frequently Asked Questions
What is CWE-1317?
CWE-1317 (Improper Access Control in Fabric Bridge) is a software weakness identified by MITRE's Common Weakness Enumeration. It is classified as a Base-level weakness. The product uses a fabric bridge for transactions between two Intellectual Property (IP) blocks, but the bridge does not properly perform the expected privilege, identity, or other access control chec...
How can CWE-1317 be exploited?
Attackers can exploit CWE-1317 (Improper Access Control in Fabric Bridge) to dos: crash, exit, or restart, bypass protection mechanism, read memory, modify memory. This weakness is typically introduced during the Architecture and Design, Implementation phase of software development.
How do I prevent CWE-1317?
Key mitigations include: Ensure that the design includes provisions for access-control checks in the bridge for both upstream and downstream transactions.
What is the severity of CWE-1317?
CWE-1317 is classified as a Base-level weakness (Medium abstraction). It has been observed in 1 real-world CVEs.