CK
← All projectsCoinkite

COLDCARD firmware

Open-source firmware for COLDCARD Bitcoin signing devices.

BitcoinHardware walletsActive incident
Repository coverage

468 commits in the local evidence base

Every captured commit receives deterministic security triage and a separate communication-quality score. Security candidates and broader second-pass signals receive full-patch Ollama analysis.

137security candidates209second-pass queue413AI analyses
55commits · 30 days
184commits · 60 days
253commits · 180 days
385commits · 365 days
Backfill bands
Aug 5 → Feb 6148 seen2 candidatesComplete
Feb 6 → Jun 684 seen8 candidatesComplete
Jun 6 → Jul 649 seen4 candidatesComplete
Jul 6 → Aug 525 seen4 candidatesComplete
Commit communication

Does the history explain itself?

Message quality measures whether a commit identifies its scope, purpose, rationale, testing, and supporting references. It does not change the security-severity score.

36/100 average clarity
10Strong · 80–100
45Adequate · 60–79
195Thin · 40–59
218Opaque · 0–39
42security candidates with opaque commit messaging
Read the scoring rubric →
Developer activity

Who is changing the project?

Public Git author strings; identities are not independently verified.

DeveloperCommitsCandidatesAnalyzedHigh riskMessage avg.
scgbckbone2551112271643
Peter D. Gray17020162818
Dmitry Monakhov212173
@Bibo-dochex923042
kdmukai111050
doc-hex111073
Piotr Duszynski111073
tadeubas606051
copilot-swe-agent[bot]504072
Danilo500079
hitechhayekian301081
Copilot300074
Analysis record

Published AI watches

Last scanned 52 minutes ago

Moderate 59 AI analysisMessage 28 · Opaque
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

Harden PSBTv2 parsing

This commit tightens how COLDCARD reads PSBTv2 (Partially Signed Bitcoin Transaction version 2) files. It now rejects several malformed or ambiguous encodings that could previously be accepted: extra key data attached to fields that should…

PSBT parser hardeningrejection of non-canonical compact-size encodingsenforcement of singleton key-data emptiness
5e0dbd0eby scgbckbone+90−113 files
Vendor flagged security relevance
Low 34 AI analysisMessage 45 · Thin
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

PSBTv2 per input required lock time calculation

This commit adds support in the COLDCARD firmware for a newer Bitcoin transaction format feature (PSBTv2) that lets each input specify its own required lock time. Before this change, the device did not correctly compute the final transacti…

PSBTv2 per-input locktime parsing and validation addedBIP-370 required locktime computation implementedIncompatible height/time locktime requirements rejected with assertion
2ea2e791by scgbckbone+191−336 files
No security note in commit
Low 46 AI analysisMessage 91 · Strong
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

Add regression test for non-object JSON message-sign input

This commit only adds a new automated test to the COLDCARD firmware test suite. The test checks that when a user tries to sign a text file containing valid JSON that is not a JSON object (for example, a plain number, string, null, or list)…

Regression test for input validation of JSON message-signingTest comment explicitly references avoiding a device crash on malformed JSON inputTest requested during review of pull request #808, suggesting prior related code change
adb7baa8by copilot-swe-agent[bot]+32−01 file
No security note in commit
Moderate 56 AI analysisMessage 50 · Thin
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

hygiene: duress wallet activate - wipe before getting slot data

This commit is a defensive hygiene fix in the COLDCARD hardware wallet's 'trick PIN' duress-wallet feature. It moves a memory-wipe routine so that it runs before the device looks up the duress wallet slot. The change reduces the window in …

secret-handling order-of-operations changeDelta Mode coercer/wipe scenarioduress wallet secret loading
aa645247by scgbckbone+3−31 file
Vendor flagged security relevance
Low 41 AI analysisMessage 45 · Thin
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

OVC clear stale outputs from new_outputs

This firmware update fixes a cleanup issue in the COLDCARD wallet's transaction signing code. Before finalizing a new Bitcoin transaction, the device now clears out leftover 'change output' records that may have been captured during a prev…

State not reset between signing attemptsStale change-output metadata reused in transaction finalizationOVC (Output Value Check) validation may be affected by leftover data
62163ccdby scgbckbone+3−01 file
No security note in commit
Informational 15 AI analysisMessage 65 · Adequate
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

Drop ValueError message string to save flash space

This commit removes a human-readable error message from a ValueError exception to reduce the amount of flash storage used by the firmware. It is a minor code cleanup and does not change the security behavior of the code. The function still…

dc89513cby copilot-swe-agent[bot]+1−11 file
No security note in commit
Low 49 AI analysisMessage 60 · Adequate
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

Add changelog entry for msgsign JSON crash fix

This commit only adds a changelog note saying a previous fix stopped the COLDCARD hardware wallet from crashing when a message-signing request was valid JSON but not a JSON object (for example, a number or string instead of a dictionary). …

Device crash on malformed message-signing inputInput vector includes NFC, QR, and SD card JSON filesValid JSON but wrong type (non-object) bypasses simple format checks
07afee0dby copilot-swe-agent[bot]+3−01 file
Vendor flagged security relevance
Informational 23 AI analysisMessage 65 · Adequate
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

Fix uncaught AttributeError on non-object JSON in parse_msg_sign_request

This commit fixes a bug where the COLDCARD firmware's message-signing feature would crash with an uncaught error if a user supplied valid JSON that wasn't a structured object (for example, a plain number, string, list, or null). The fix ch…

uncaught exception in message parsing pathinput validation gap on JSON typepotential denial-of-service via malformed request
d55ddbceby copilot-swe-agent[bot]+3−01 file
No security note in commit
Informational 15 AI analysisMessage 28 · Opaque
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

Signed for mk release.

This commit only updates the release signature file (signatures.txt) for the COLDCARD firmware. It adds two new file hashes for a v5.6.2-mk release and refreshes the PGP signature covering the file. There are no code changes, no bug fixes,…

e6d01c36by Peter D. Gray+10−81 file
No security note in commit
Informational 15 AI analysisMessage 28 · Opaque
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

Signed for q1 release.

This commit only updates a release signature file. It refreshes SHA-256 hashes for changelog files and adds hashes for two new firmware release files, then re-signs the file with a PGP signature. There are no code changes, no bug fixes, an…

a310e1ddby Peter D. Gray+16−141 file
No security note in commit
Informational 15 AI analysisMessage 28 · Opaque
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

update block height

This commit simply updates a stored Bitcoin blockchain height number from 965,337 to 965,338. It is a routine, automatically generated data refresh with no code logic changes and no apparent security relevance.

3caf599eby Peter D. Gray+2−21 file
No security note in commit
Informational 15 AI analysisMessage 38 · Opaque
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

new policy w blank lines

This commit only edits the project's internal release notes file. It replaces a detailed list of upcoming changes with placeholder 'tbd' entries and adds a note asking contributors to leave blank lines between additions. There are no code …

3d8f90f1by Peter D. Gray+9−561 file
No security note in commit
Moderate 58 AI analysisMessage 28 · Opaque
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

update for new release

This commit is a release-notes-only update for the COLDCARD hardware wallet firmware. It moves many security-relevant bug fixes and hardening items from the current changelog into the historical release notes for versions 5.6.1 and 1.5.1Q,…

USB protocol encryption upgrade (ncry v3) with direction-separated keys and replay protectionPSBT tampering detection: re-verify staged bytes before signing after Virtual Disk overwriteFirmware update integrity: abort if staged image overwritten, reject images extending past world-checksum region
ea2b89bfby Peter D. Gray+272−1124 files
Vendor flagged security relevance
Informational 15 AI analysisMessage 28 · Opaque
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

update block height

This commit simply updates a stored Bitcoin blockchain height number from 963,314 to 965,337, along with its timestamp. It is an automatic, routine data refresh with no code logic changes and no apparent security relevance.

15deb2f6by Peter D. Gray+2−21 file
No security note in commit
Moderate 59 AI analysisMessage 73 · Adequate
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

bugfix: report staged firmware modification at upgrade approval

This commit fixes a bug in the COLDCARD firmware upgrade process. Previously, if someone tampered with the staged firmware after the user saw the approval prompt but before they confirmed, the device would crash with a bare internal error …

Tamper-detection failure path hardened: assert replaced with user-facing failure storyDefense-in-depth assertion added to PIN-changing flowTest coverage added for tamper-abort message
ef73cf58by scgbckbone+6−64 files
No security note in commit
Informational 2 AI analysisMessage 45 · Thin
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

bump ckcc to latest master

This commit only updates a linked external code library (a Git submodule called ckcc-protocol) to a newer version. The actual code changes inside that library are not shown in the commit diff, and no security-related information was provid…

ec1c9417by scgbckbone+1−11 file
No security note in commit
Informational 15 AI analysisMessage 0 · Opaque
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

tweaks

This commit only edits the draft release changelog file. It rewords two upcoming feature descriptions and fixes line wrapping for another entry. No source code, firmware logic, or security behavior was changed.

e166ffddby Peter D. Gray+8−41 file
No security note in commit
Moderate 62 AI analysisMessage 45 · Thin
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

bugfix: reject non-ASCII BIP-39 passphrases

This update fixes a bug where COLDCARD wallets would accept BIP-39 passphrases containing non-ASCII characters (like accented letters or emojis) or non-printable characters. Because different wallet software normalizes such characters diff…

Behavioral fix that prevents silent derivation of incompatible wallet seedsInput validation added for BIP-39 passphrase across USB, UI, saved-passphrase restore, and note/password lanesRejection of non-printable ASCII and non-ASCII Unicode characters
c1a67660by scgbckbone+155−147 files
Vendor flagged security relevance
High 74 AI analysisMessage 60 · Adequate
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

bugfix: capture single-sig segwit change

This commit fixes two related security bugs in the COLDCARD hardware wallet's protection against a known 'BIP-143 amount swap' attack. First, the wallet was recording the claimed amount of a segwit input to its secure cache as soon as a tr…

Fixes deferred persistence of UTXO amount cache until after successful signingFixes missing capture of single-sig segwit change outputs (p2wpkh and p2sh-p2wpkh)Prevents cache poisoning by cancelled/malicious PSBT previews
8979a8a5by scgbckbone+322−806 files
Vendor flagged security relevance
Moderate 66 AI analysisMessage 45 · Thin
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

bugfix: Reject duplicate singleton PSBT keys

This update fixes a bug in how the COLDCARD wallet reads PSBT files (the standard format for passing Bitcoin transactions between devices). Previously, if a PSBT contained the same special 'singleton' key twice in the same section, the dev…

PSBT parser now rejects duplicate singleton keysNew test cases for duplicate keys in global/input/output mapsChangelog labels the change as a bugfix
cb6df8daby scgbckbone+30−13 files
No security note in commit
Repository ledger

Explore captured commits

Expand any commit for its author, full message, clarity score, changed files, triage signals, analysis, and source link.

Security candidatebugfix: harden staged PSBT signingby scgbckbone · efbb7b66 · Aug 16, 2026 · 5 filesMessage 45 · ThinModerate 68Details
Commit message · scgbckbone

bugfix: harden staged PSBT signing

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing boundarydefensive validationsigning or wallet pathauthentication path
AI analysis · Moderate 68/100

This commit fixes a bug in the COLDCARD hardware wallet's staged PSBT (Partially Signed Bitcoin Transaction) signing process. Previously, the wallet only re-checked the transaction hash if something was written to the lower 'input' staging region of its external memory. Writes to the upper 'output' staging region did not trigger a re-check, meaning a malicious or buggy process could potentially modify transaction data there without detection. The fix makes the write counter cover both regions, ensures oversized transaction files are rejected before staging, and updates the signing guard so that a write to the inactive region is treated as a new baseline rather than a false alarm. In short, it closes a gap where a transaction could be tampered with after user review but before signing.

AI review queuedimprove tests stabilityby scgbckbone · b9cc2276 · Aug 16, 2026 · 4 filesMessage 38 · OpaqueInformational 15Details
Commit message · scgbckbone

improve tests stability

38/100 · OpaqueMessage clarity
✓ Subject identifies a change✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100

This commit only changes automated test files for the COLDCARD hardware wallet firmware. It adds small delays, extra button presses, and adjusts test parameters to make the test suite run more reliably. There are no changes to the actual firmware code that runs on the device, so this cannot affect real users or introduce security vulnerabilities.

AI review queuedbugfix: allow password typing with USB disabledby scgbckbone · 627ca44f · Aug 15, 2026 · 2 filesMessage 45 · ThinLow 28Details
Commit message · scgbckbone

bugfix: allow password typing with USB disabled

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
second-pass: broader security terminology
AI analysis · Low 28/100

This commit fixes a bug in the COLDCARD password-notes feature. Previously, the 'Send Password' menu option was accidentally hidden when USB was disabled, because the code reused a setting meant for something else. The fix removes that wrong condition so the option always appears. This is a usability bugfix, not a security vulnerability: it restores intended access rather than opening an unintended one.

AI review queuedbugfix: simulator crash from desynced LED pipeby hitechhayekian · 3548a5b5 · Aug 14, 2026 · 2 filesMessage 78 · AdequateInformational 23Details
Commit message · hitechhayekian

bugfix: simulator crash from desynced LED pipe

The LED pipe is framed as two bytes per message, [mask, state], but the
SE1 "greenlight firmware" path (submethod 5) still wrote a single byte
left over from the old 4+4-bit protocol.

That stray byte shifts the stream by one for good: every later read(2)
straddles a message boundary and decodes garbage LED state, and the
trailing lone byte makes simulator.py's `mask, lset = c` die with
ValueError: not enough values to unpack (expected 2, got 1).

Write [mask, state] like every other caller does, and add a test that
holds all led_pipe writers to the two-byte framing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
second-pass: broader security terminology
AI analysis · Informational 23/100

This commit fixes a simulator-only bug in the COLDCARD firmware's development/test tooling. A special code path that simulates the secure element's 'greenlight' LED signal was writing one byte to an internal pipe instead of the expected two bytes. That single-byte write shifted all later messages out of alignment, eventually causing the simulator to crash with a Python unpacking error. The fix changes that one write to two bytes and adds a regression test to catch similar mistakes. It does not affect real COLDCARD hardware or user funds.

Security candidatedice: use model-specific completion keysby @Bibo-dochex · 0fa83926 · Aug 14, 2026 · 1 fileMessage 45 · ThinLow 27Details
Commit message · @Bibo-dochex

dice: use model-specific completion keys

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
seed or entropy path
AI analysis · Low 27/100

This commit changes which physical buttons on the COLDCARD device are treated as 'done' or 'cancel' keys during a dice-roll seed-generation feature. It makes the choice depend on the device model (QWERTY keyboard vs. non-QWERTY) instead of hardcoding a mix of keys. The change is small and appears to be a UI/UX correctness fix rather than a security vulnerability. There is no clear evidence in the commit that this fixes an exploitable bug.

Security candidaterng: boot-time self-test proving rng_get() enters the hardware read pathby scgbckbone · 7ac5d98a · Aug 13, 2026 · 4 filesMessage 60 · AdequateLow 46Details
Commit message · scgbckbone

rng: boot-time self-test proving rng_get() enters the hardware read path

60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
entropy or randomnessseed or entropy path
AI analysis · Low 46/100

This commit adds a startup safety check for the hardware random-number generator (RNG) in the COLDCARD MK4 firmware. Before anything else can use randomness, the device now verifies that the rng_get() function actually reaches the hardware RNG and returns real entropy. If the check fails, the device deliberately halts ('bricks' itself) rather than boot. The change is defensive: it does not fix a known exploit, but it is designed to prevent a future bug or supply-chain issue where the firmware might accidentally use a non-hardware (and therefore weaker) source of randomness.

Security candidatebugfix: block Seed Vault XOR access in Delta Modeby scgbckbone · f09f3213 · Aug 12, 2026 · 2 filesMessage 45 · ThinModerate 60Details
Commit message · scgbckbone

bugfix: block Seed Vault XOR access in Delta Mode

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
access controlseed or entropy path
AI analysis · Moderate 60/100

This update fixes a bug in the COLDCARD hardware wallet where a security mode called 'Delta Mode' could still access the Seed Vault through a feature called Seed XOR restore. Delta Mode is meant to restrict what an attacker or unauthorized user can do with the device. The fix blocks that access path. The bug was reported by someone named Rety.

Security candidatebugfix: restrict PSRAM download (dwld) to leased resultsby scgbckbone · 300a1711 · Aug 12, 2026 · 6 filesMessage 50 · ThinHigh 76Details
Commit message · scgbckbone

bugfix: restrict PSRAM download (dwld) to leased results

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
authentication path
AI analysis · High 76/100

This update fixes a bug in the COLDCARD hardware wallet's USB download command. Previously, a connected computer could ask the COLDCARD to read back almost anything it had temporarily stored in its extra memory chip (PSRAM), including uploaded transaction files or multisig setup files, even across different USB sessions and without encryption. Now the device only allows downloading the single most recent result it explicitly produced for the user (such as a signed transaction or backup), only over an encrypted session, and only until a new upload or session resets the permission.

Security candidatebugfix: signing TOCTOU on PSRAM-staged PSBTby scgbckbone · 528677e9 · Aug 12, 2026 · 5 filesMessage 78 · AdequateHigh 82Details
Commit message · scgbckbone

bugfix: signing TOCTOU on PSRAM-staged PSBT

- bind SHA256 of staged bytes at parse; re-verify immediately before
signing, fail closed (wipe + "Transaction modified") on mismatch
- PSRAM write-generation counter gates the re-check: common path costs
one integer compare
- usb: reject upld with busy while a non-transaction approval flow owns
the staging area
- regression tests: mid-approval upld rewrite and direct PSRAM mutation
both abort signing; unchanged buffer still signs

78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
signing boundaryfuzzing or regression evidencesigning or wallet pathauthentication path
AI analysis · High 82/100

This commit fixes a security bug where a malicious or compromised computer connected to a COLDCARD wallet could potentially swap the transaction data after the user reviewed it on the device screen but before the device signed it. The user might approve one transaction while the device signs a different one. The fix locks down the staged transaction data, re-checks it right before signing, and aborts with an error if anything changed.

Security candidatebugfix: dice roll screen counted key-repeat events as dice rollsby Piotr Duszynski · ff6020df · Aug 12, 2026 · 1 fileMessage 73 · AdequateLow 41Details
Commit message · Piotr Duszynski

bugfix: dice roll screen counted key-repeat events as dice rolls

add_dice_rolls() used PressRelease() with no argument, so the digits were not
in need_release and a held digit was re-delivered about every 60ms, each
delivery counted as a roll. Put the digits in need_release, the way
ux_mk4.ux_enter_number already does. A roll now registers on release, so
overlapping presses count once rather than several times.

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
seed or entropy path
AI analysis · Low 41/100

This fix corrects a user-interface bug in COLDCARD's dice-roll seed-generation feature. Previously, if a user held down a digit key, the device treated the auto-repeating key events as multiple separate dice rolls, rapidly adding many unintended rolls. After the fix, a held key registers exactly one roll when released, matching how number entry already works elsewhere. This reduces the chance a user accidentally skews their random seed by holding a button too long.

Security candidatetest_pincodes: drop obsolete mk3-only test_duress (uses removed fetch param)by @Bibo-dochex · 01f82cde · Aug 11, 2026 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · @Bibo-dochex

test_pincodes: drop obsolete mk3-only test_duress (uses removed fetch param)

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
access controlauthentication path
AI analysis · Informational 15/100

This commit only removes an obsolete test from the test suite. The deleted test was for a duress PIN feature on the older Mk3 Coldcard and used a 'fetch' parameter that no longer exists. There is no change to firmware code that users run, so it cannot introduce a security vulnerability or fix one.

AI review queuedreviewby scgbckbone · 8c07dbe3 · Aug 10, 2026 · 1 fileMessage 0 · OpaqueInformational 15Details
Commit message · scgbckbone

review

0/100 · OpaqueMessage clarity
! Very short subject! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
documentation-only discountsecond-pass: opaque commit message
AI analysis · Informational 15/100

This commit only updates documentation. It clarifies that a BIP39 passphrase wallet backup stores an extended private key (XPRV) rather than the seed words or passphrase, and adds version numbers for older firmware behavior. There is no code change and no security fix or vulnerability introduced.

Security candidatedocument nested passphrase wallet handlingby scgbckbone · 8eafbb2a · Aug 10, 2026 · 1 fileMessage 45 · ThinLow 35Details
Commit message · scgbckbone

document nested passphrase wallet handling

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
access controldocumentation-only discount
AI analysis · Low 35/100

This commit only adds a single line to the changelog, describing a bugfix that was apparently already made elsewhere. The bug concerned how COLDCARD's 'View Seed Words' and backup features handled BIP-39 passphrase wallets when a passphrase was applied on top of a temporary seed. In that case, the device reportedly treated the master seed as the parent instead of the immediate temporary seed, potentially showing or backing up the wrong secret. Because the actual code change is not in this commit, we cannot directly verify the fix or assess its full security implications from this diff alone.

Security candidatecapture effective seed in backup workflowsby scgbckbone · 160bbb88 · Aug 8, 2026 · 12 filesMessage 45 · ThinLow 47Details
Commit message · scgbckbone

capture effective seed in backup workflows

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
cryptography-sensitive pathauthentication path
AI analysis · Low 47/100

This commit changes how COLDCARD backup, clone, and Key Teleport features handle temporary seeds and BIP-39 passphrases. Previously, users could sometimes back up the main wallet even when a passphrase or temporary seed was active. Now the device always backs up the wallet currently in effect and warns the user first. This is a security-hardening change that reduces the risk of accidentally exposing or archiving the wrong secret, but it is not a fix for an active remote exploit.

Security candidateshow effective seed in View Seed Wordsby scgbckbone · 36e6b5e3 · Aug 8, 2026 · 4 filesMessage 45 · ThinInformational 22Details
Commit message · scgbckbone

show effective seed in View Seed Words

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
AI analysis · Informational 22/100

This commit changes what the COLDCARD wallet displays on its 'View Seed Words' screen when a BIP-39 passphrase is active. Previously it showed the original 24 seed words plus a masked passphrase and the derived extended private key. Now it shows only the effective extended private key (and a note that a passphrase is in effect), hiding the underlying seed words. This is a deliberate UX/security hardening change, not a fix for an exploitable vulnerability.

Security candidatebugfix: wipe in deltamode before listing saved passphrasesby scgbckbone · 0e78b8e1 · Aug 8, 2026 · 2 filesMessage 50 · ThinHigh 71Details
Commit message · scgbckbone

bugfix: wipe in deltamode before listing saved passphrases

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
access control
AI analysis · High 71/100

This commit fixes a bug in the COLDCARD hardware wallet where, when the device is in 'Delta Mode' (a special temporary operating mode), opening the list of saved BIP-39 passphrases would reveal the passphrases and wallet fingerprints instead of securely wiping the seed first. The fix adds a call to wipe the seed if Delta Mode is active before displaying the saved passphrase menu. This prevents sensitive secret material from being exposed on screen in a mode meant to limit what an attacker can see.

Security candidatecleanup: drop unused fetch() paramsby scgbckbone · 81685458 · Aug 8, 2026 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · scgbckbone

cleanup: drop unused fetch() params

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
authentication path
AI analysis · Informational 15/100

This commit removes unused parameters from an internal function called fetch() in the COLDCARD firmware. There is no evidence this change fixes or introduces a security issue; it is purely a code cleanup that simplifies the function signature and removes dead code paths.

Security candidateCredit BIP322 validation issue reporterby scgbckbone · 330bafc1 · Aug 6, 2026 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · scgbckbone

Credit BIP322 validation issue reporter

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
secret or key materialdocumentation-only discount
AI analysis · Informational 15/100

This commit only adds a thank-you credit to an upcoming release changelog. It does not change any code, so it cannot by itself fix or introduce a security issue. The actual BIP-322 validation bugfix must have been made in a different, earlier commit.

Security candidatebugfix: detect RNG_SR_SEIS and RNG_SR_SECS, retry safely, and fail closed on persistent faultsby scgbckbone · 82ced47a · Aug 5, 2026 · 5 filesMessage 50 · ThinModerate 66Details
Commit message · scgbckbone

bugfix: detect RNG_SR_SEIS and RNG_SR_SECS, retry safely, and fail closed on persistent faults

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
entropy or randomnessseed or entropy pathboot or update path
AI analysis · Moderate 66/100

This update fixes how the COLDCARD hardware wallet's random-number generator (RNG) handles rare hardware faults. Previously, the device could silently continue using weak or repeated random numbers if the RNG reported a seed error. Now it detects those error flags, tries a safe recovery a few times, and if the problem persists it stops with an error instead of producing bad randomness. Two keyboard drivers were also updated so a temporary RNG failure does not lock the user out before login.

Security candidatebugfix: harden callgate buffer boundsby scgbckbone · c0d27278 · Aug 5, 2026 · 2 filesMessage 45 · ThinHigh 70Details
Commit message · scgbckbone

bugfix: harden callgate buffer bounds

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
defensive validationboot or update path
AI analysis · High 70/100

This commit fixes a buffer-validation bug in the COLDCARD Mk4 bootloader's secure callgate. The old code checked memory ranges using simple addition (address + length), which can overflow and trick the device into treating an attacker-controlled buffer as safe. The patch replaces those checks with subtraction-based math that cannot overflow, and also rejects negative input lengths. A security review by Karma-X is credited with the finding.

Security candidatebugfix: invalidate message signatures in Delta Modeby scgbckbone · 0f09d662 · Aug 5, 2026 · 2 filesMessage 50 · ThinModerate 65Details
Commit message · scgbckbone

bugfix: invalidate message signatures in Delta Mode

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing boundaryaccess controldefensive validationsigning or wallet path
AI analysis · Moderate 65/100

This update fixes a bug in the COLDCARD hardware wallet where signing a text message with the special 'Delta Mode' PIN would produce a signature that looked valid to anyone checking it. Delta Mode is a hidden feature that silently corrupts transaction signatures so attackers who force you to unlock your wallet cannot steal funds. The same protection was missing for message signatures, so an attacker could have tricked a victim into producing a seemingly valid signed message under duress. The fix makes message signatures produced in Delta Mode invalid, matching the existing behavior for transactions.

Security candidateexternal entropy required for CCC key and temporary seedsby scgbckbone · 7100bb66 · Aug 5, 2026 · 5 filesMessage 35 · OpaqueLow 46Details
Commit message · scgbckbone

external entropy required for CCC key and temporary seeds

35/100 · OpaqueMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Names security-relevant behavior explicitly! No meaningful explanatory body! Contains work-in-progress language! Opaque security-relevant change
Why it was queued
entropy or randomnessseed or entropy path
AI analysis · Low 46/100

This commit changes how COLDCARD creates two special types of secrets: temporary seeds and the 'CCC' co-signing key. Previously these were generated purely from the device's own random number generator. Now the user must add their own randomness (for example by mashing buttons, rolling dice, or flipping coins) before the secret is created. This makes it harder for an attacker who has somehow compromised the device's random generator to predict or control those secrets. It is a defensive hardening change, not a fix for a known active attack.

Security candidateWarn before dice-only seed generationby scgbckbone · 71763b2c · Aug 5, 2026 · 3 filesMessage 45 · ThinInformational 22Details
Commit message · scgbckbone

Warn before dice-only seed generation

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
seed or entropy path
AI analysis · Informational 22/100

This commit adds a warning screen before users create a Bitcoin wallet seed using only dice rolls. It tells users that no hardware randomness is added, and that the on-screen hash must be kept secret because anyone who sees it could recreate the wallet and steal funds. This is a user-experience and safety improvement, not a fix for a software vulnerability.

Security candidaterng: verify libngu bytes path reaches hardware driverby scgbckbone · 8570af2a · Aug 5, 2026 · 1 fileMessage 60 · AdequateLow 45Details
Commit message · scgbckbone

rng: verify libngu bytes path reaches hardware driver

60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
entropy or randomness
AI analysis · Low 45/100

This commit adds build-time checks to ensure the firmware's random-number generator actually chains all the way down to the hardware chip. It does not fix a known exploit, but it prevents a future build misconfiguration from silently causing the wallet to use weaker random numbers, which could eventually make private keys guessable. Think of it as adding an assembly-line inspection that verifies a critical safety wire is connected end-to-end.

Security candidateRequire external entropy for all new master seed wallets - with new options dice/coin/mashby scgbckbone · 886582c8 · Aug 4, 2026 · 10 filesMessage 78 · AdequateLow 37Details
Commit message · scgbckbone

Require external entropy for all new master seed wallets - with new options dice/coin/mash

Deduplicate dice and coin collection while retaining separate mash handling. Capture raw mash press edges with the DWT CPU cycle counter (~8.33ns at 120MHz) before debounce. Credit two bits per inter-press gap, requiring 65 presses for 64 credited gaps; key identity is mixed in but receives no entropy credit.

78/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Names security-relevant behavior explicitly
Why it was queued
entropy or randomnessseed or entropy path
AI analysis · Low 37/100

This commit changes how new COLDCARD wallets are created: instead of relying only on the device's internal random-number generators, users must now add their own physical randomness by either mashing keys, rolling dice, or flipping coins. The internal random sources are still used, but the user's extra randomness is mixed in. This is a security improvement meant to reduce the risk that a hidden flaw in the device's random-number hardware could produce a predictable wallet. The change also adds checks to catch obviously biased dice or coin results.