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.
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
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
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
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
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 …
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
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…
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
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
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,…
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…
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.
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 …
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
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.
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
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…
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.
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
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
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
Expand any commit for its author, full message, clarity score, changed files, triage signals, analysis, and source link.
Security candidateShow TRNG words for verificationby scgbckbone · fda3f15c · Aug 25, 2026 · 3 filesMessage 55 · ThinInformational 15Details
Commit message · scgbckbone
Show TRNG words for verification
55/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
entropy or randomnessdefensive validationseed or entropy path
AI analysis · Informational 15/100
This commit adds a new menu option that lets users see the 24 secret words representing the device's random seed before any user-provided dice rolls or coin flips are mixed in. It is a transparency/verification feature, not a security fix. The change log explicitly calls it a bugfix for a previously removed ability to view the device-generated seed, and the code adds warnings that these words must be kept secret.
✓ Subject identifies a change✓ Mentions testing or verification! Too few words to establish purpose! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
cryptography-sensitive pathseed or entropy path
AI analysis · Informational 15/100
This commit only changes test scripts for the COLDCARD hardware wallet firmware. It adds small timing delays, adjusts the order of test assertions, and fills in missing steps in automated UI tests. There are no changes to the actual firmware or wallet code that users rely on, so this cannot affect real device security.
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
seed or entropy path
AI analysis · Informational 15/100
This commit only rewords an on-screen user warning about keeping dice-roll hashes secret. It does not change any code behavior, cryptography, or security logic. The change makes the warning more precise: it clarifies that seeing any intermediate hash (not just the final one) could let someone recreate the wallet from the dice rolls entered up to that point. There is no vulnerability or security fix here.
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
seed or entropy pathparser or protocol path
AI analysis · Low 35/100
This commit adds a new, more secure USB encryption mode (ncry v3) to the COLDCARD hardware wallet firmware. It does not remove the older v1/v2 mode. The new mode adds message authentication tags and separate keys for each direction, which protects against tampering, replay, and reflection attacks on the USB cable. The commit also fixes a timing side-channel in user authentication by replacing direct HMAC comparisons with a constant-time comparison. The change is defensive and improves security, but the old unauthenticated modes remain available for compatibility, so users must actively choose v3 to get the stronger protection.
Security candidatebugfix: separate DFU container limit from firmware boundby scgbckbone · cc63e6fe · Aug 17, 2026 · 3 filesMessage 73 · AdequateLow 34Details
Commit message · scgbckbone
bugfix: separate DFU container limit from firmware bound
FW_MAX_LENGTH_MK4 now bounds only the firmware itself to the world-checksum-covered flash region (4k aligned, no DFU-wrapper slack carved out). New FW_MAX_DFU_SIZE_MK4 adds room for the bootloader element and DFU wrapper so multi-element -factory.dfu images remain selectable in the MicroSD file picker.
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
update trust
AI analysis · Low 34/100
This commit fixes a bug in the COLDCARD firmware update process. Previously, the maximum file size allowed for a firmware update file (.dfu) was set too small because it was based on the firmware's own size limit, not accounting for extra data that comes with 'factory' update images (which include a bootloader and a DFU wrapper). As a result, legitimate factory firmware files could not be selected from the MicroSD card picker. The fix separates the two limits: one for the actual firmware size, and a larger one for the .dfu container shown in the file picker. There is no direct evidence in the commit that this was a security vulnerability, but overly restrictive size checks can sometimes hide or complicate downgrade or supply-chain issues.
Security candidaterequire scrolling to reveal passphraseby scgbckbone · cb6dca78 · Aug 17, 2026 · 3 filesMessage 45 · ThinLow 43Details
Commit message · scgbckbone
require scrolling to reveal passphrase
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
access controlcryptography-sensitive pathseed or entropy path
AI analysis · Low 43/100
This change makes the COLDCARD wallet require the user to scroll down before showing a BIP-39 passphrase on screen. The goal is to reduce the chance that someone nearby (a shoulder-surfer) or a camera can read the secret passphrase when it appears automatically. It is a small user-interface hardening improvement, not a fix for a remote hack.
Security candidateChange: use combined-source RNG for security-sensitive valuesby scgbckbone · 575844f6 · Aug 17, 2026 · 4 filesMessage 55 · ThinLow 46Details
Commit message · scgbckbone
Change: use combined-source RNG for security-sensitive values
55/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Names security-relevant behavior explicitly! No meaningful explanatory body
Why it was queued
entropy or randomness
AI analysis · Low 46/100
This commit changes how the COLDCARD hardware wallet generates random numbers used to protect backups, encrypted files, and two-factor authentication secrets. Previously these sensitive values were produced using only the STM32 chip's built-in random number generator (TRNG). Now they are produced through a stronger combined method: a Hash-DRBG (a NIST-style deterministic random-bit generator) that is seeded from both secure elements and the TRNG. The change is defensive hardening rather than a fix for a known exploitable bug, but it reduces the risk that a weakness in the STM32 TRNG alone could weaken user secrets.
Change: enforce entropy checks for temporary dice 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 45/100
This commit tightens security for temporary Bitcoin wallet seeds created by rolling dice on a COLDCARD hardware wallet. Previously, temporary dice-generated seeds skipped the same mandatory entropy checks and warnings used for permanent dice-generated seeds. The change makes temporary dice seeds follow the same rules, so users cannot accidentally create a weak wallet from too few dice rolls. This is a defensive hardening fix, not an active bug that steals funds, but weak entropy could let an attacker guess a wallet's private keys.
Security candidatebugfix: clear PSRAM on fast wipeby scgbckbone · 1deeac4c · Aug 17, 2026 · 3 filesMessage 45 · ThinModerate 59Details
Commit message · scgbckbone
bugfix: clear PSRAM on fast wipe
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
boot or update path
AI analysis · Moderate 59/100
This update fixes a bug in the COLDCARD MK4 hardware wallet where sensitive temporary data stored in extra memory (PSRAM) was not fully erased when the device performed a 'fast wipe' or self-destruct sequence. After wiping the seed, leftover application data could remain in that memory through a reset, potentially allowing someone with physical access to recover secrets. The patch now explicitly clears that memory during both wipe paths.
bugfix: invalidate dwld leases before Q1 PSRAM staging
50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
defensive validationauthentication path
AI analysis · Moderate 59/100
This update fixes a bug where the COLDCARD Q1 wallet could accidentally let a previously authorized USB file download remain valid while it reused a special memory area (PSRAM) to prepare new data for display or signing. If a backup download lease was still active, an attacker or malicious host connected over USB might have been able to read sensitive material that was later loaded into that same memory area. The patch now clears the download lease before staging PSBT files, BBQr data, or note exports in PSRAM.
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
secret or key material
AI analysis · Moderate 59/100
This commit fixes a security bug in the COLDCARD hardware wallet where sensitive BIP39 seed-derivation data was not being securely erased from memory after use. The patch wraps the master-secret generation in a try/finally block and uses blank_object() to wipe the mnemonic words and derived master secret even if an error occurs. Without this fix, an attacker who could read the device's RAM might recover these secrets, though such access is normally difficult on a hardened hardware wallet.
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
defensive validationboot or update path
AI analysis · Low 43/100
This commit fixes a small but meaningful bug in the COLDCARD bootloader. Two separate code paths that check firmware update data were missing the word 'else', so after rejecting bad data they would also run a second check. That second check could trigger an internal assertion (a hard crash/reboot) when given an invalid 'highwater' timestamp value, instead of cleanly rejecting the bad update. The fix makes the bootloader properly reject invalid values without crashing.
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
access control
AI analysis · Moderate 60/100
This commit fixes a bug in the COLDCARD hardware wallet where using the BIP-85 feature while in Delta Mode could expose or operate on the real master seed instead of the expected temporary/delta seed. The fix forces the wallet to wipe the seed before performing BIP-85 derivation in Delta Mode, matching how other sensitive operations are already blocked. This is a security bugfix for a local, post-authentication edge case.
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
access control
AI analysis · Moderate 62/100
This commit fixes two ways a Coldcard in 'Delta Mode' (a restricted mode that hides the wallet seed) could still let a user pick or import secret seed phrases. One path was through 'Key Teleport' secret selection, and another was through importing a 'CCC key C' from the Seed Vault. The patch blocks both so Delta Mode cannot be bypassed to reveal or use stored secrets.
Security candidatebugfix: bind USB signing to staged PSBTby scgbckbone · 1734192a · Aug 16, 2026 · 4 filesMessage 45 · ThinHigh 72Details
Commit message · scgbckbone
bugfix: bind USB signing to staged PSBT
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing boundaryauthentication path
AI analysis · High 72/100
This commit fixes a bug in the COLDCARD hardware wallet where a transaction could be signed over USB even if the data shown on the device screen did not match the data actually being signed. Before the fix, an attacker or buggy software could upload one PSBT (a Bitcoin transaction file) but then ask the device to sign a different one, or sign data that was not fully/correctly uploaded. The fix makes the USB signing command strictly verify the staged PSBT's length and SHA-256 hash against what is stored in memory, and resets upload state on errors so stale data cannot be reused.
✓ 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.
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.
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.
✓ 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.
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.
- 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.
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.
✓ 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.
✓ 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.