AI-generated analysisPublished automatically and not human-verified. Validated context appears in community notes below.
← Watch feed
Moderate 55 Bitcoin

Merge pull request #655 from Foundation-Devices/sft-7320-entropy-hardening

Public commit record

What the developer wrote

Authored by mjg-foundation

78/100 · Adequate
Merge pull request #655 from Foundation-Devices/sft-7320-entropy-hardening

SFT-7320: Improve Passport Core hardware error handling
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference✓ Names security-relevant behavior explicitly
The short version

What changed, and why it matters

This firmware update hardens the way Passport generates random numbers. Previously, a failing or stuck hardware random-number generator could silently produce weak or repeated values, which is dangerous for creating secret keys. The patch makes the device detect bad randomness and either recover or permanently stop with a clear error screen, instead of continuing with potentially guessable secrets. It also routes all MicroPython randomness through the same checked generator.

Recommended action

Treat this as a security-hardening fix and include it in the next firmware release. Review whether any other callers still use raw HAL RNG or bypass rng_sample, and ensure rng_fatal_error() behavior is acceptable in factory/test modes. Consider adding tests that simulate RNG fault injection to verify the fail-closed path.

Security signals we found

01

Fail-closed RNG error handling: persistent seed/clock errors now trigger a fatal handler instead of returning potentially weak values

02

ST-recommended seed-error recovery (RM0433 section 34.3.7): clear SEIS and flush 12 discard words, with bounded retry attempts

03

Duplicate and zero-value rejection in rng_try_sample to avoid returning stuck or invalid RNG output

04

Bounded polling loop replaces infinite busy-wait, preventing silent hangs and enabling failure detection

05

MicroPython RNG hook MICROPY_BOARD_RNG_GET redirected to checked rng_sample, broadening coverage

06

Bootloader displays a permanent 'Entropy source failure' fatal error when RNG fails early

Risk score

Why this scored 55/100

Our methodology →
Potential impact 18/30
Exploitability 8/25
Stealth signal 6/15
Affected reach 12/15
Confidence 7/10
Evidence quality 4/5
Human-validated context

Community notes

Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.

No validated notes yet.

The AI analysis stands alone for now. Submit a note if you can add evidence or important context.