2114
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
Varies by Context
Potential Mitigations
Phase: Testing
System-level verification may be used to ensure that components are correctly connected and
that design security requirements are not violated due to interactions between various IP blocks.
Demonstrative Examples
Example 1:
Many SoCs use hardware to partition system resources between trusted and un-trusted entities.
One example of this concept is the Arm TrustZone, in which the processor and all security-aware
IP attempt to isolate resources based on the status of a privilege bit. This privilege bit is part of
the input interface in all TrustZone-aware IP. If this privilege bit is accidentally grounded or left
unconnected when the IP is instantiated, privilege escalation of all input data may occur.
Example Language: Verilog (Bad)
// IP definition
module tz_peripheral(clk, reset, data_in, data_in_security_level, ...);
input clk, reset;
input [31:0] data_in;
input data_in_security_level;
...
endmodule
// Instantiation of IP in a parent system
module soc(...)
...
tz_peripheral u_tz_peripheral(
.clk(clk),
.rst(rst),
.data_in(rdata),
//Copy-and-paste error or typo grounds data_in_security_level (in this example 0=secure, 1=non-secure) effectively
promoting all data to "secure")
.data_in_security_level(1'b0),
);
...
endmodule
In the Verilog code below, the security level input to the TrustZone aware peripheral is correctly
driven by an appropriate signal instead of being grounded.
Example Language: Verilog (Good)
// Instantiation of IP in a parent system
module soc(...)
...
CWE Version 4.14
CWE-1276: Hardware Child Block Incorrectly Connected to Parent System
CWE-1276: Hardware Child Block Incorrectly Connected to Parent System