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 candidatedocs: index all docs and fix drift vs firmwareby scgbckbone · 8e3bbfdf · Jun 19, 2026 · 15 filesMessage 57 · ThinInformational 15Details
Commit message · scgbckbone
docs: index all docs and fix drift vs firmware
57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
seed or entropy pathsigning or wallet pathauthentication path
AI analysis · Informational 15/100
This commit is purely a documentation update. It adds missing entries to the docs index, updates outdated examples and menu trees, fixes a broken filename reference in a code comment, and corrects factual details (such as supported models and key storage page numbers) to match the current firmware. There are no code behavior changes that would affect security.
AI review queuedcreditby Peter D. Gray · f9b65ce9 · Jun 19, 2026 · 1 fileMessage 0 · OpaqueInformational 15Details
Commit message · Peter D. Gray
credit
0/100 · OpaqueMessage clarity
! Very short subject! Too few words to establish purpose! No meaningful explanatory body
This commit only adds a thank-you credit to an upcoming release changelog. It does not change any source code, firmware behavior, or fix anything by itself. The actual bugfix it references (ignoring an unexpected 'bkpw' field in backups) was made in some earlier commit not shown here.
AI review queuedDon't restore cached backup password (bkpw) from backup fileby Dmitry Monakhov · 8d71040a · Jun 19, 2026 · 1 fileMessage 73 · AdequateHigh 72Details
Commit message · Dmitry Monakhov
Don't restore cached backup password (bkpw) from backup file
Restore mirrored the write-side strip of bkpw: a crafted backup could inject setting.bkpw and fixate the password used for future backups. Drop it on restore
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
second-pass: broader security terminology
AI analysis · High 72/100
This update fixes a security flaw in how the COLDCARD wallet restores its settings from a backup file. Previously, a tampered backup could secretly set the password used for future backups, letting an attacker who later gets physical access predict or control backup encryption. The fix ignores that 'cached backup password' field during restore, so backups cannot smuggle in a chosen password.
AI review queuedBump requests from 2.32.4 to 2.33.0 in /testingby dependabot[bot] · 5feae87e · Jun 19, 2026 · 1 fileMessage 86 · StrongInformational 15Details
Commit message · dependabot[bot]
Bump requests from 2.32.4 to 2.33.0 in /testing
Bumps [requests](https://github.com/psf/requests) from 2.32.4 to 2.33.0. - [Release notes](https://github.com/psf/requests/releases) - [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md) - [Commits](https://github.com/psf/requests/compare/v2.32.4...v2.33.0)
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
This is an automated dependency update by Dependabot that bumps the Python 'requests' library used only in the project's testing environment from version 2.32.4 to 2.33.0. It changes one line in a test requirements file. There is no indication this affects the COLDCARD firmware itself or introduces a security issue.
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100
This commit only updates the README.md file to correct the order of steps for building a reproducible copy of the COLDCARD firmware. It changes documentation text: adding a step to change into the firmware directory, updating the example release tag and binary filename, and moving the directory change to stm32 after the checkout. There are no code changes and no security implications.
Security candidatebundle small fixesby scgbckbone · c36eac23 · Jun 19, 2026 · 48 filesMessage 28 · OpaqueModerate 66Details
Commit message · scgbckbone
bundle small fixes
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
cryptography-sensitive pathseed or entropy pathsigning or wallet pathauthentication pathparser or protocol path
AI analysis · Moderate 66/100
This is a large bundle of bug fixes for the COLDCARD hardware wallet firmware. Most changes fix user-interface crashes ('yikes'), incorrect error messages, or policy edge cases rather than a single critical vulnerability. The most security-relevant fixes are: (1) disabling NFC and Virtual Disk before entering HSM mode to reduce the attack surface of the locked-down operating mode; (2) preventing a trick/bypass PIN that has no secrets from completing a Single-Signer Spending Policy unlock; (3) stopping OP_RETURN and non-standard scripts from being hidden or mis-displayed during transaction approval; (4) rejecting malformed JSON/QR message-signing requests and control characters that could be used to trick the user; and (5) preventing duplicate multisig wallets with reordered keys from being imported as if they were only a rename. The commit also adds many regression tests for these behaviors.
Lower-priorityfix typo in nfc-pushtx.mdby scgbckbone · a24a894c · May 16, 2026 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · scgbckbone
fix typo in nfc-pushtx.md
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100
This commit fixes a simple spelling mistake in a Markdown documentation file. The word 'colcard.com' was corrected to 'coldcard.com'. It does not change any code, configuration, or security behavior of the COLDCARD firmware.
unreleased regression introduced in 300323f18d20d6e0a904f5f3bcc9d63d84d2f6a7
60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 23/100
This commit fixes a user-interface bug in COLDCARD firmware where pressing certain menu keys (like '1' to change account number or '2' to toggle a format option) would accidentally fall through and trigger an export using default settings, instead of waiting for the user to confirm with 'y'. The fix adds 'continue' statements so the device loops back to the menu, and changes the confirmation check to also accept '1' as a valid choice after account entry. It is described by the developer as an unreleased regression, meaning it was caught before reaching users.
✓ Descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 17/100
This commit fixes a minor user-interface bug in the COLDCARD hardware wallet's NFC 'Verify Address' feature. Previously, if the NFC read was cancelled or returned no address, the code could produce a confusing or wrong error message because it tried to unpack a missing result. The fix checks whether the NFC read actually returned anything before proceeding, and a new test confirms that cancelling the prompt no longer appears to 'crash' or mislead the user. There is no indication this bug could be used to steal funds or bypass security.
bugfix: attribute error on exception object + more 7z header tests
60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Low 26/100
This commit fixes a small bug in how COLDCARD reports errors when it tries to verify or decrypt a backup file. In older code, when something went wrong while reading a 7z backup, the error-handling code itself crashed because it tried to read a non-existent property (e.message) on the exception object. That meant the user would see a confusing 'AttributeError' or 'Yikes' screen instead of a helpful message like 'Confused file? Truncated file?'. The fix changes e.message to e so the real error is shown. It also adds more tests for malformed backup headers. This is a user-experience and diagnostic improvement, not a direct theft-of-funds vulnerability.
Lower-prioritybugfix: default menu position in custom path address format menuby scgbckbone · 393ebf5b · Apr 20, 2026 · 4 filesMessage 50 · ThinInformational 20Details
Commit message · scgbckbone
bugfix: default menu position in custom path address format menu
50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 20/100
This commit fixes a UI bug in the COLDCARD address explorer. When a user entered a custom BIP32 path, the device was highlighting the wrong default address format on the selection menu. For example, a path meant for classic Bitcoin addresses (starting with m/44h) might have had Segwit highlighted by default. The fix corrects the menu's default cursor position and adds a warning not to reorder the underlying address-format list. There is no direct security vulnerability here—just a user-experience bug that could, in rare cases, lead a user to confirm an unintended address type.
AI review queuedbugfix: "Send Password" menu item visibility reversed, do not store password as None, UX fixesby scgbckbone · 2b5178bd · Apr 20, 2026 · 3 filesMessage 50 · ThinLow 38Details
Commit message · scgbckbone
bugfix: "Send Password" menu item visibility reversed, do not store password as None, UX fixes
50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
second-pass: broader security terminology
AI analysis · Low 38/100
This update fixes three small but real bugs in the COLDCARD's Notes & Passwords feature. The most important fix corrects a reversed menu setting: the 'Send Password' option was accidentally shown only when USB was disabled, and hidden when USB was enabled. It also prevents the device from storing a blank password as the special value 'None', which could crash the device later when sending a password. Finally, it stops a misleading 'Saving...' message from appearing after a failed import.
Lower-priorityfix: correct container type for settings.wifs; proper button text UX with parenthesesby scgbckbone · 44e7be36 · Apr 20, 2026 · 3 filesMessage 62 · AdequateLow 32Details
Commit message · scgbckbone
fix: correct container type for settings.wifs; proper button text UX with parentheses
62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Low 32/100
This commit fixes two small issues in the Coldcard firmware. First, it changes the on-screen prompt when enabling a high-security 'HSM' policy to put the button name in parentheses, matching how the device normally displays button labels. Second, it corrects a bug in the code that manages saved private key imports (WIFs): the code was treating a list as if it were a dictionary, which could cause the wrong entry to be deleted or an error to be silently ignored. The commit also updates a test to expect the new prompt text.
✓ Descriptive subject! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
signing or wallet pathauthentication path
AI analysis · Low 40/100
This commit changes how number-entry prompts behave across the COLDCARD wallet interface. Previously, many prompts did not allow the user to cancel, so pressing the cancel button could be misread as entering '0' and the operation would continue. Now, canceling is explicitly allowed and the code checks for it, returning the user to the previous screen instead of proceeding with a default value. This is a user-experience and safety improvement rather than a remote-exploitable bug, but it prevents accidental or coerced confirmations in security-sensitive flows like exporting xpubs, creating multisig wallets, and signing messages.
bugfix: exiting nickname entry with nickname already saved deleted previous nickname; fixed settings_get with prelogin arg
50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 24/100
This commit fixes a bug in the COLDCARD hardware wallet where cancelling out of the 'Set Nickname' screen would accidentally delete an existing nickname. The nickname is shown on the login screen to help users identify their device. The fix also corrects a related test helper that was not properly reading pre-login settings. There is no direct evidence this was a security vulnerability, but it could be a minor usability/reliability issue.
bugfix: enable disabled 7z magic check in check_file_headers
50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Low 34/100
This commit fixes a bug where COLDCARD backup files in 7z format were not properly checked for the correct file header ('magic bytes'). Because the check was accidentally disabled, the device could accept backup files with wrong or corrupted headers. The fix turns the check back on and adds tests to make sure bad headers are rejected with a clear error message.
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
access controlauthentication path
AI analysis · Low 48/100
This commit fixes a bug where a special security feature called 'Delta Mode Trick PIN' was not being restored when a user restored their Coldcard wallet from a backup. A Trick PIN is a decoy PIN that can do things like show a fake wallet or wipe the device. Delta Mode is a type of Trick PIN that must be very similar to the real PIN. Because of the bug, after restoring from backup, this protection would silently disappear, leaving users who relied on it less protected than they expected. The fix changes the backup-restore code so Delta Mode Trick PINs are correctly recreated, and adds an automated test to check this.
! Very short subject! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Low 26/100
This commit only fixes spelling mistakes in comments and user-facing text strings across nine source files. There are no code logic changes, no security fixes, and no functional behavior differences.
Lower-prioritydo not repeat HSM_DISABLE_CMDS in HOBBLED_CMDSby scgbckbone · 02bd4287 · Apr 20, 2026 · 1 fileMessage 45 · ThinLow 33Details
Commit message · scgbckbone
do not repeat HSM_DISABLE_CMDS in HOBBLED_CMDS
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Low 33/100
This commit is a small code cleanup in the COLDCARD firmware's USB command handling. It removes a manually duplicated list of commands that were already defined elsewhere (HSM_DISABLE_CMDS) and instead reuses that existing list. There is no direct evidence this fixes an active security bug, but it reduces the risk of future mistakes where the two lists become inconsistent and a restricted command accidentally stays allowed.
✓ Descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100
This commit fixes a minor Python syntax bug in a test helper file. Two missing commas in a list of command-line arguments for a local Bitcoin test node (bitcoind) were added. Without the commas, Python would accidentally concatenate two strings into one invalid argument, which would cause the test setup to fail. This change only affects internal testing code and has no security relevance for COLDCARD users or real funds.
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 15/100
This commit only changes the on-screen title of a feature from 'Spending Policy' to 'Spend Policy' for older COLDCARD models that lack a full keyboard (non-QWERTY versions). It is a user-interface wording tweak with no security effect.
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 15/100
This commit removes one extra blank line from the on-screen 'Show Version' display text. It is a cosmetic formatting cleanup with no security relevance.
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 19/100
This tiny patch adds a 'Wait...' loading screen while the COLDCARD wallet switches between Bitcoin networks (for example, mainnet to testnet). The change appears aimed at preventing user confusion or accidental interaction during a brief reconfiguration, not at fixing a serious security flaw. There is no direct evidence in the commit that this resolves an exploit.
AI review queuedSigned for Edge release.by Peter D. Gray · 29ef16be · Mar 25, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · Peter D. Gray
Signed for Edge release.
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
signing or wallet pathdocumentation-only discountsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Informational 15/100
This commit only updates the signed release manifest file (signatures.txt). It refreshes SHA-256 hashes for changelog files and adds hashes for two new firmware build files, then re-signs the file with a PGP signature. There is no source code change and no security fix or vulnerability present in the diff itself.
regtest inherits chains parameters from testnet (saves flash space)
50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 15/100
This commit is a small code cleanup. It makes the 'regtest' (regression test) Bitcoin network settings inherit from 'testnet' instead of duplicating the same values. The only unique setting kept for regtest is its special Bech32 address prefix ('bcrt'). There is no security issue here.