Bug 11 - Key Manager: EDN Entropy Error Path Unconnected, Replay Protection Disabled
Legacy reference: Bug #18 in the working set
Security feature bypassed
Key Manager entropy reseed integrity validation - the EDN error/replay-protection path that must gate reseed acceptance
Attack type
Type 2 - physical attacker with EDN bus fault injection
Finding
The prim_edn_req instance in the Key Manager reseed controller has
RepCheck=0 and leaves err_o() physically unconnected - any faulted entropy is
accepted silently:
// keymgr_reseed_ctrl.sv:63-73
prim_edn_req #(.RepCheck(0)) u_edn_req (..., .err_o(), ...);
.err_o() is unconnected; cnt_err_o (line 109) is a dead-end local signal.
Location or code reference
- hw/ip/keymgr/rtl/keymgr_reseed_ctrl.sv:63-76 - prim_edn_req instance with
.err_o()unconnected - hw/ip/keymgr/rtl/keymgr_reseed_ctrl.sv:109 -
.err_o(cnt_err_o)- dead-end local signal
New Tools
Yes - custom HWF-AFL pipeline (standalone model) + actual-RTL module instantiation
(Verilator 4.210): keymgr_reseed_ctrl_tb.sv instantiates the real
keymgr_reseed_ctrl.sv with its genuine dependency chain; drives a reseed request, simulates
the EDN responding with a FIPS error (edn_fips=1), and observes cnt_err_o stays 0 -
the error is silently swallowed (see testbench/logs/rtl-test-simulation.log:
*** BUG #18 CONFIRMED on actual OpenTitan RTL ***).
AI Tools
No.
LLM
No.
LLM Details
PLACEHOLDER - to be completed (model name/version, parameters, download link or API endpoint).
Online LLM Details
PLACEHOLDER - to be completed (input/output/total token counts, verification script).
LLM Prompts
PLACEHOLDER - to be completed (complete prompt, full model response, step-by-step explanation).
Detection method
Actual-RTL instantiation (Verilator 4.210, full dependency closure) + AFL model. Security property: an EDN error during reseed must set the error output / block acceptance; the testbench shows the error is accepted silently.
Security impact
Fault-injected EDN entropy poisons the reseed LFSR; all subsequent key derivations use
attacker-influenced entropy - predictable session keys. Replay protection (RepCheck) is
also disabled, enabling entropy replay.
Adversary profile
Type 2 - physical attacker with the ability to fault the EDN entropy bus (voltage/EM glitch during keymgr reseed).
Proposed mitigation
prim_edn_req #(.RepCheck(1)) u_edn_req (..., .err_o(err), ...); // connect + alert
CVSSv3.1 score and severity
6.8 - MEDIUM
CVSSv3.1 Details
CVSS:3.1/AV:P/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N
- AV: Physical - bus fault injection
- AC: High - precise glitch timing on the EDN bus
- PR: None
- S: Changed - crosses from entropy path into derived keys
- C/I: High - predictable session keys
Attachment links
Located in this repository (GitHub is the cloud storage for the submission):