What changed, and why it matters
This commit only edits the project's 'Next-ChangeLog.md' file. It rewrites upcoming release notes, adds details, fixes wording, and updates release dates. No actual firmware code, build scripts, or security behavior changed in this commit. The changelog text does describe many security fixes, but those fixes are already present in other commits; this commit merely documents them.
No action required for this commit. Review the actual implementation commits referenced by the changelog entries if assessing the corresponding security fixes.
Security signals we found
Changelog-only commit with no code changes
References multiple previously fixed security issues (PSBT rewrite, USB dwld readback, RNG faults, Delta Mode leaks, etc.)
Credits external reporters: Rety, KirillCherikov, instagibbs, drk1wi, FreeZ Agent, Karma-X review
No diff evidence of new vulnerability or new patch
Evidence from the diff
The diff is a documentation-only update to releases/Next-ChangeLog.md. It reorganizes and expands bullet points covering RNG hardening, Delta Mode restrictions, BIP-322/BIP-21 handling, PSBT staging, USB download limits, multisig enrollment, and other previously implemented fixes. No source, build, or configuration files were modified. Therefore the commit itself introduces no executable change and has no direct security impact.
Changed components
releases/Next-ChangeLog.mdInspect captured patch +46 / −36
### releases/Next-ChangeLog.md
@@ -4,62 +4,69 @@ This lists the new changes that have not yet been published in a normal release.
# Shared Improvements - Both Mk and Q
-- Change: Use TRNG-seeded SHA-256 Hash-DRBG for backup passwords,
- encryption salt/IV, and 2FA secrets; use raw TRNG for non-secret uses only.
- Improvements to Entropy Generation:
- - Master seed generation mixes entropy from both Secure Elements with
- the STM32 TRNG (previously TRNG only).
+ - Master seed generation now combines fresh entropy from the STM32 TRNG,
+ SE1, and SE2. Previously, SE1 and SE2 contributed through boot-time RNG
+ seeding; they are now also sampled directly for each new master seed.
- On every boot, RNG is seeded with the full 256-bit digest of entropy
from both Secure Elements (previously truncated to 32 bits).
- libngu now uses a `SHA-256 Hash_DRBG` (NIST SP 800-90A) instead of the Yasmarang PRNG.
- - RNG self-test proves `rng_get()` enters the hardware read path. Brick device otherwise.
- - Makefile compile-time checks, verifying included code is expanded beyond
- those in the Hotfix.
-- New master seeds now **require** extra user supplied entropy (dice, coin flips, keyboard mashing):
+ - Backup passwords, encryption salt/IV, and 2FA secrets now use libngu's
+ Hash_DRBG-based RNG instead of calling the raw TRNG interface directly.
+ Remaining direct application uses of the raw TRNG are for non-secret values.
+ - RNG self-test proves `rng_get()` enters the hardware read path and stops
+ the boot if the check fails.
+ - Build-time checks verify that libngu's random-byte path reaches the
+ hardware `rng_get()` implementation.
+- Newly generated master seeds, Temporary Seeds, and CCC key C now **require**
+ extra user-supplied entropy (dice, coin flips, or keyboard mashing):
- Choose key mashing (based on [Peter Todd's Push-Button RNG](https://petertodd.org/2014/push-button-rng)),
physical dice rolls or physical coin flips.
- - TRNG, SE1 and SE2 randomness is also mixed into the generated seed.
- - Dice and coin results are checked for obviously bad distribution.
- - Key mashing hashes raw GPIO press timing captured at CPU cycle
- resolution (~8.33ns at 120MHz) before keypad debounce. Releases are ignored,
+ - Entropy supplied by the user is added to randomness from the STM32 TRNG,
+ SE1, and SE2. It does not replace those sources.
+ - Dice and coin results are checked for obviously bad distributions.
+ - Key mashing hashes raw GPIO press timing captured at CPU-cycle
+ resolution (~8.33 ns at 120 MHz) before keypad debounce. Releases are ignored,
repeating one key is valid, and at least 65 presses are required. The first
press establishes the timing reference; each of the following 64 inter-press
- gaps is conservatively credited with two bits of entropy credit. The full timing
+ gaps is conservatively credited with two bits of entropy. The full timing
delta and key identity are mixed in, but key identity receives no entropy credit.
Users may continue mashing beyond 65 presses to contribute additional timing entropy.
- - Generated Temporary Seeds and generated CCC key C now require extra user supplied entropy.
- Dice-Only Enhancements:
- - Dice-only seed generation now warns that no hardware randomness is
- included and the final hash shown on-screen must be kept secret.
+ - Dice-only seed generation now clearly warns: **NO hardware entropy is
+ included.** The final hash shown on screen must be kept secret.
- Temporary dice-only seeds now use the same warning and mandatory
entropy checks as master dice-only seeds.
+ - Held digit keys count as one dice roll, and completion keys now match
+ each COLDCARD model.
- Delta Mode hardening:
- Wipe seed in Delta Mode when saved BIP-39 passphrases are listed, instead of revealing them.
- - Block Key Teleport’s secret picker and CCC key-C import from Seed
- Vault in Delta Mode.
- - Prevent access to Seed Vault entries through Seed XOR restore in Delta Mode.
- Thanks to "Rety" for reporting this.
+ - Block access to Seed Vault entries through Key Teleport's secret picker,
+ CCC key-C import, and Seed XOR restore in Delta Mode. Thanks to "Rety"
+ for reporting the Seed XOR issue.
- Wipe seed before BIP-85 derivation in Delta Mode.
- Prevent valid message signatures when using a Delta Mode PIN.
- Bugfix: Detect `RNG_SR_SEIS` and `RNG_SR_SECS`, retry safely, and fail closed on persistent faults.
- Bugfix: BIP-322 message signing now rejects non-ASCII and other unsupported
message text before approval. Thanks to [@KirillCherikov](https://github.com/KirillCherikov) for reporting.
-- Bugfix: Prevent duplicate WIF Store entries after restarting
+- Bugfix: Prevent duplicate WIF Store entries after restarting.
- Change: Block `SIGHASH_SINGLE` and `SIGHASH_SINGLE|ANYONECANPAY` by default because they can
leave later transaction outputs modifiable after signing. They remain available when Sighash
Checks is set to Warn.
Thanks to [@instagibbs](https://github.com/instagibbs) for reporting this issue.
-- Bugfix: Fixed PSBT uploads being mistaken for partial firmware uploads.
+- Bugfix: Prevent PSBT uploads from being mistaken for partial firmware uploads.
- Bugfix: Harden callgate buffer validation against integer overflow and out-of-range access,
following a finding in the [Karma-X security review](https://karma-x.io/blog/post/75/).
-- Bugfix: Reject out-of-range firmware highwater timestamps without triggering a
+- Bugfix: Reject firmware update data beyond the signed firmware length.
+- Bugfix: Reject out-of-range firmware high-water timestamps without triggering a
bootloader assertion.
- Bugfix: USB `dwld` allowed readback of arbitrary staged PSRAM content (uploaded
PSBT, multisig enroll file), also across sessions and over plaintext links.
Downloads are now limited to the single most recent result produced for
download (signed txn, visualization, backup), require an encrypted session,
- and are invalidated by any upload, newly staged transaction, or new session.
- Thanks to [@drk1wi](https://github.com/drk1wi).
+ and are invalidated by any upload, newly staged PSRAM content (including
+ Q-specific PSBT and BBQr paths), or new session. Thanks to
+ [@drk1wi](https://github.com/drk1wi) for reporting this issue.
- Change: When a BIP-39 passphrase is active, View Seed Words now shows only the effective
extended private key instead of the underlying seed words.
- Bugfix: View Seed Words and backup workflows incorrectly treated the master seed as the
@@ -68,20 +75,21 @@ This lists the new changes that have not yet been published in a normal release.
- Change: Backup System, Clone Coldcard, and Key Teleport’s Full COLDCARD Backup now capture
the wallet secret currently in effect, including temporary seeds and BIP-39 passphrase
wallets, and warn before export.
-- Bugfix: a compromised USB host could rewrite the staged PSBT after review, but
+- Bugfix: A compromised USB host could rewrite the staged PSBT after review, but
before signing, so the signature covered a different transaction than shown.
Staged bytes are now re-verified before signing; any change aborts with
- "Transaction modified". Thanks to "FreeZ Agent" for the report and PoC.
-- Bugfix: Reject duplicate cosigner keys, and cosigner keys the device already holds,
+ "Transaction modified". Thanks to "FreeZ Agent" for the report and proof of concept.
+- Bugfix: Reject duplicate cosigner keys and keys the device already holds
during multisig wallet enrollment. Thanks to [@drk1wi](https://github.com/drk1wi) for reporting this.
- Bugfix: Reject backup files that request excessive password-derivation work.
-- Bugfix: Reject duplicate multisig wallet names.
+- Bugfix: Require unique multisig wallet names, generate unique default names,
+ and reject ambiguous lookups of legacy duplicate names.
- Change: Multisig wallet names can now be changed with a dedicated `Rename`
action in the wallet menu. Reimporting an enrollment file or descriptor no
longer renames an existing wallet.
- Bugfix: Separate the SE1 check nonce from the PIN digest. Thanks to
[@instagibbs](https://github.com/instagibbs) for reporting this issue.
-- Bugfix: Clear volatile application data when the seed is wiped.
+- Bugfix: Clear volatile PSRAM application data when the seed is wiped.
- Enhancement: Clone Coldcard now shows the restored seed's master fingerprint on the receiving
Coldcard and asks for confirmation before installing it.
- Bugfix: CCC velocity policies created by older firmware now enforce the
@@ -92,20 +100,22 @@ This lists the new changes that have not yet been published in a normal release.
# Mk Specific Changes
-## 5.6.1 - 2026-08-18
+## 5.6.1 - 2026-08-20
- all of the above.
# Q Specific Changes
-## 1.5.1Q - 2026-08-18
+## 1.5.1Q - 2026-08-20
- Security Improvement: Require scrolling to reveal locally entered BIP-39 passphrases.
- Bugfix: Reject malformed multipart BBQrs that could include stale PSRAM bytes
in decoded results. Thanks to [@drk1wi](https://github.com/drk1wi) for reporting this.
-- Hardening & Defence in depth:
- - Reject control characters in BIP-21 payment metadata before display.
- - Limit multisig coordinator BBQr imports before JSON parsing to prevent memory
+- Defence-in-depth hardening:
+ - Sanitize control characters in BIP-21 payment metadata values and
+ parameter names before display.
+ - Reject oversized multisig coordinator BBQr imports before JSON parsing to prevent memory
exhaustion.
- - Revoke USB download access before staging PSBT and BBQr data in PSRAM.
+- Bugfix: Allow Send Password to temporarily enable USB keyboard emulation when
+ USB is disabled in settings.Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.