- If the kernel CSPRNG is weak or predictable, but RadioSeed and the operating environment execute honestly, the radio source may preserve security to the extent it contributes independent min-entropy.
- RadioSeed does not protect against a malicious or fully compromised
operating system, Python runtime, dependency, or display stack. A hostile
environment can observe the radio digest, adaptively choose
token_bytes()output, substitute the displayed mnemonic, capture the passphrase, or replace the code. - XOR moral, qualified: if either input is uniformly random, secret, and independent of the other, their XOR is uniformly random — this fails when a failing source can observe or choose its output in response to the survivor.
- Health checks are defensive heuristics. They are not NIST SP 800-90B validation and do not prove 256 bits of radio min-entropy.
- Python cannot reliably zero immutable strings; no secure memory-erasure
promise. Prefer short-lived scopes;
bytearraywhere feasible.
libgpiod timestamps are kernel-assigned monotonic estimates at IRQ time, not hardware capture (Raspberry Pi has no HTE). ISR jitter under load can reach tens of µs — immaterial against ~second-scale decay intervals, but stated.
Sample_Output.txt (removed from the tree) contained a full 24-word mnemonic
and public keys, public since 2021. That mnemonic is permanently compromised.
Deleting the file does not erase Git history, forks, or caches. If it was ever
funded, move funds immediately. History rewrite is an optional follow-up and
is not remediation.
| Defect | Fix | Test / gate |
|---|---|---|
| Fail-open Mersenne fallback | GpiodEdgeSource only on seed; no sim in hardware class |
CLI gating + wheel provenance |
| bitstring RMW race | Single collector thread; no shared bitstring | collector/sim tests |
Constructor t0 contamination |
Four real timestamps before first bit | extractor vectors |
| Toggle conceals bias | Removed | extractor all-zeros under constant bias |
Console(record=True) |
Never record | display unit tests |
| Typer locals on crash | pretty_exceptions_enable=False + sanitized boundary |
exception-leak tests |
| 91-zero blindness | RCT/APT BitHealth | synthetic [0]*91 |
| Passphrase on argv / ignored | --prompt-passphrase / --no-passphrase only |
CLI tests |
| Weak file writes | O_EXCL 0600 + dir fsync |
files tests |
Report vulnerabilities via GitHub Security Advisories for this repository.