2 vulnerabilities classified as CWE-1221. AI Chinese analysis included.
CWE-1221 represents a hardware design flaw where register defaults or Intellectual Property parameters are incorrectly initialized to insecure values. This weakness typically arises when hardware description language code fails to assign safe, predefined states to programmable controls during a hardware reset, leaving critical settings vulnerable to manipulation. Attackers can exploit this by altering register contents to bypass security mechanisms, escalate privileges, or cause system instability, effectively compromising the integrity of the integrated circuit. To mitigate this risk, developers must rigorously validate all default configurations during the design phase, ensuring that every register and IP parameter is explicitly set to a secure, hardened state. Comprehensive verification processes, including formal verification and extensive testing, are essential to confirm that hardware initialization sequences consistently enforce these secure defaults, thereby preventing unauthorized access or malicious control of the underlying hardware infrastructure.
// Parameterized Register module example // Secure_mode : REGISTER_DEFAULT[0] : When set to 1 register is read only and not writable// module register_example #( parameter REGISTER_WIDTH = 8, // Parameter defines width of register, default 8 bits parameter [REGISTER_WIDTH-1:0] REGISTER_DEFAULT = 2**REGISTER_WIDTH -2 // Default value of register computed from Width. Sets all bits to 1s except bit 0 (Secure _mode) ) ( input [REGISTER_WIDTH-1:0] Data_in, input Clk, input resetn, input write, output reg [REGISTER_WIDTH-1:0] Data_out ); reg Secure_mode; always @(posedge Clk or negedge resetn) if (~register_example #( .REGISTER_WIDTH (32), .REGISTER_DEFAULT (1225) // Correct default value set, to enable Secure_mode ) Secure_Device_ID_example ( .Data_in (Data_in), .Data_out (Secure_reg), .Clk (Clk), .resetn (resetn), .write (write) );parameter MEM_SIZE = 100; localparam JTAG_OFFSET = 81; const logic [MEM_SIZE-1:0][31:0] mem = { // JTAG expected hamc hash 32'h49ac13af, 32'h1276f1b8, 32'h6703193a, 32'h65eb531b, 32'h3025ccca, 32'h3e8861f4, 32'h329edfe5, 32'h98f763b4, ... assign jtag_hash_o = {mem[JTAG_OFFSET-1],mem[JTAG_OFFSET-2],mem[JTAG_OFFSET-3], mem[JTAG_OFFSET-4],mem[JTAG_OFFSET-5],mem[JTAG_OFFSET-6],mem[JTAG_OFFSET-7],mem[JTAG_OFFSET-8]}; ...parameter MEM_SIZE = 100; localparam JTAG_OFFSET = 100;| CVE ID | Title | CVSS | Severity | Published |
|---|---|---|---|---|
| CVE-2022-20731 | Cisco Catalyst Digital Building Series Switches and Cisco Catalyst Micro Switches Vulnerabilities — Cisco IOS ROMMON Software | 4.6 | Medium | 2022-04-15 |
| CVE-2022-20661 | Cisco Catalyst Digital Building Series Switches and Cisco Catalyst Micro Switches Vulnerabilities — Cisco IOS ROMMON Software | 4.6 | Medium | 2022-04-15 |
Vulnerabilities classified as CWE-1221 represent 2 CVEs. The CWE taxonomy describes the weakness; review individual CVEs for product-specific impact.