Hack@CHES 2026 - Phase 1 Bug Submissions

Team KattangalSec

View on GitHub

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

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

Located in this repository (GitHub is the cloud storage for the submission):