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
This commit only adds two symbolic links (shortcuts) in the release-notes folder, pointing two old file names to a shared history file. It does not change any firmware code, wallet logic, or security behavior. There is no security relevance.
AI review queuedupdate release notesby Peter D. Gray · fe3b6b27 · Jun 30, 2026 · 5 filesMessage 28 · OpaqueModerate 59Details
Commit message · Peter D. Gray
update release notes
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
parser or protocol pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Moderate 59/100
This commit is a documentation-only update to Coldcard firmware release notes. It moves many bug-fix and feature descriptions from an unpublished 'Next-ChangeLog.md' into the published 'ChangeLog.md' and renames/reorganizes history files. The actual code changes were made in earlier commits that are not shown here. The notes describe several security-relevant fixes, most notably a fix for 'legacy input amount spoofing' in PSBT signing, plus many crash and usability fixes. Because we only see the changelog edits, we cannot directly verify the code fixes or tell how complete they are.
AI review queuedcleanupsby Peter D. Gray · defeda26 · Jun 30, 2026 · 1 fileMessage 0 · OpaqueInformational 15Details
Commit message · Peter D. Gray
cleanups
0/100 · OpaqueMessage clarity
! Very short subject! Too few words to establish purpose! No meaningful explanatory body
This commit only edits the release notes file (Next-ChangeLog.md). It rewords existing changelog entries, adds punctuation, fixes formatting, and updates planned release dates. No source code, build scripts, firmware binaries, or documentation outside the changelog were changed. There is no functional change to the COLDCARD firmware or its security behavior.
Lower-prioritybump version to 5.5.1 & 1.4.1Qby scgbckbone · 0b21d07c · Jun 30, 2026 · 3 filesMessage 45 · ThinInformational 15Details
Commit message · scgbckbone
bump version to 5.5.1 & 1.4.1Q
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 15/100
This commit only changes version numbers in two build files and a changelog heading. There is no code change, no bug fix, and no security-related content.
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
cryptography-sensitive pathsigning or wallet path
AI analysis · Low 38/100
This commit adds a 330-character limit to BIP-322 proof-of-reserve messages on the COLDCARD hardware wallet. Without the limit, an attacker could craft a very long message that might be used to mislead the user, overflow display buffers, or cause other unexpected behavior during signing. The change rejects oversized or empty messages before the user is asked to sign.
standalone encrypted backups for Secure Notes & Passwords
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 · Low 29/100
This commit adds a new feature to the COLDCARD firmware: encrypted backups for Secure Notes & Passwords. Previously, exporting notes and passwords to a microSD card produced an unencrypted JSON file. Now the device can encrypt that export using the same 7z/AES backup encryption used for full wallet backups. The change also refactors the existing backup password code so it can be reused for both full-device and notes-only backups. A small, unrelated fix in message signing changes a logical AND to an OR when deciding whether tab/newline characters are allowed in signed text. There is no vendor disclosure of a security vulnerability, and the commit is framed as a feature addition.
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
access control
AI analysis · Moderate 61/100
This commit reverts a previous security fix. The original fix prevented a 'bypass PIN' (a special trick PIN that hides the wallet) from being used a second time to finish logging in without ever entering the real main PIN. After this revert, entering the bypass PIN again at the second prompt will complete login into an empty, no-secret session, just as it did before the fix. The change also removes the bugfix note from the changelog and updates tests to expect the old, less restrictive behavior again.
Security candidateapply note or pwd as b39 passphraseby scgbckbone · 0ef6413c · Jun 24, 2026 · 9 filesMessage 45 · ThinLow 27Details
Commit message · scgbckbone
apply note or pwd as b39 passphrase
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
access controlseed or entropy pathsigning or wallet pathauthentication path
AI analysis · Low 27/100
This commit adds a new feature to the COLDCARD hardware wallet that lets users apply the text of a Secure Note or the value of a Secure Note password as their BIP-39 wallet passphrase. It also tightens how printable ASCII is checked in a few places. The change is user-facing and requires physical interaction, so it does not look like a remote exploit. However, because passphrases control which wallet is derived, any bug in how note text is sanitized or applied could cause a user to load an unexpected wallet or expose a note's contents as a passphrase.
Security candidateFix BBQr share of Unicode text: encode str to UTF-8 before sizing/splittingby Dmitry Monakhov · 97d86c95 · Jun 24, 2026 · 1 fileMessage 73 · AdequateLow 33Details
Commit message · Dmitry Monakhov
Fix BBQr share of Unicode text: encode str to UTF-8 before sizing/splitting
For 'U'/'J' payloads data is a str; planning counted codepoints while b32encode consumes UTF-8 bytes, so multi-byte text (e.g. paper-wallet QR art) overflowed target_vers and tripped the assert in show_bbqr_codes.
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
memory safety
AI analysis · Low 33/100
This commit fixes a bug in the COLDCARD Q1 hardware wallet where displaying certain QR codes containing non-English or special characters could cause the device to crash with an assertion failure. The fix ensures text is converted to UTF-8 bytes before calculating QR code sizes, preventing a mismatch between expected and actual data length. There is no direct evidence this bug is exploitable for malicious purposes.
Lower-priorityAdd groups for secure notesby scgbckbone · edae8c1e · Jun 24, 2026 · 3 filesMessage 45 · ThinInformational 15Details
Commit message · scgbckbone
Add groups for secure notes
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 15/100
This commit adds a new feature to the COLDCARD firmware that lets users organize their saved secure notes and passwords into groups, similar to folders. It is a user-experience improvement and does not fix or introduce any security vulnerability.
Lower-priorityKeep scanner reinit state instance-localby scgbckbone · 55340577 · Jun 24, 2026 · 2 filesMessage 45 · ThinLow 26Details
Commit message · scgbckbone
Keep scanner reinit state instance-local
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Low 26/100
This tiny code change moves a 'needs reinit' flag from being shared across all QR scanner objects to being kept inside each individual scanner object. In the real device code the flag is removed from the base class; in the simulator it is added as an instance variable. The change is a bug-fix style cleanup that prevents scanner state from leaking between different scanner instances. There is no direct evidence in the commit of a security vulnerability, but shared mutable state can in principle cause race-condition or state-confusion bugs.
Lower-priorityFix QR scanner setup and sleep handlingby scgbckbone · ad2088d2 · Jun 24, 2026 · 3 filesMessage 45 · ThinLow 32Details
Commit message · scgbckbone
Fix QR scanner setup and sleep handling
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Low 32/100
This commit fixes several bugs in how the COLDCARD Q1 hardware wallet talks to its built-in QR-code scanner. The changes make scanner startup more reliable, prevent stale 'go to sleep' commands from accidentally stopping a scan that just started, and recover better when commands time out or the user cancels. The changelog calls these 'Scanner robustness' fixes. There is no direct evidence this is a security vulnerability that can be exploited by an attacker; it is primarily a reliability/stability improvement. However, because the QR scanner is used to read sensitive data such as Bitcoin transactions and seed backups, any crash or misbehavior during scanning could in theory affect user funds or cause denial of service, so the change has defensive-security value.
Lower-priorityfix bypass_tmp return to master secret with xprv typeby scgbckbone · 67a5c6c2 · Jun 24, 2026 · 1 fileMessage 50 · ThinModerate 61Details
Commit message · scgbckbone
fix bypass_tmp return to master secret with xprv type
50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Moderate 61/100
This commit fixes a bug in how the COLDCARD wallet creates encrypted backups when a temporary seed is being bypassed. Previously, if the main secret was stored as an extended private key ('xprv') rather than as BIP39 seed words, the backup code could incorrectly encode the secret and potentially return to or expose the master secret in the wrong form. The fix ensures the correct secret type is used when restoring settings from the main seed during backup generation.
✓ Mentions testing or verification! Very short subject! Too few words to establish purpose! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
cryptography-sensitive path
AI analysis · Informational 15/100
This commit only updates two test files to fix failing tests. It changes test input data and adds an address-format parameter that a helper function now requires. There is no change to the actual COLDCARD firmware or wallet code that users rely on, so it does not affect device security.
✓ Subject identifies a change! Too few words to establish purpose! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
signing or wallet pathauthentication path
AI analysis · Moderate 57/100
This commit fixes a bug in the COLDCARD hardware wallet that prevented it from correctly signing Bitcoin transactions that spend from 'pay-to-public-key' (P2PK) outputs. P2PK is an older, uncommon output type where coins are locked directly to a public key rather than to a Bitcoin address. The bug meant P2PK signing was broken entirely, and the device could not handle both compressed (33-byte) and uncompressed (65-byte) public key forms. The fix updates the firmware to recognize both key lengths, compare them correctly against derived keys, and produce the right transaction signature format. It also adds tests that exercise real P2PK spends against Bitcoin Core.
AI review queuedReject witness-only UTXO for legacy inputs; Suppress fee for unverified witness UTXOs;normalize legacy inputs to proper utxoby scgbckbone · 59eb529a · Jun 23, 2026 · 6 filesMessage 50 · ThinHigh 78Details
Commit message · scgbckbone
Reject witness-only UTXO for legacy inputs; Suppress fee for unverified witness UTXOs;normalize legacy inputs to proper utxo
50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · High 78/100
This update fixes a bug in the COLDCARD hardware wallet where a malicious or malformed Bitcoin transaction file (PSBT) could trick the device into using the wrong amount of money for a non-SegWit (legacy) input. Specifically, if the file only provided a lightweight 'witness UTXO' for a legacy input, the device would trust that amount. An attacker could lie about the amount, making the transaction look like it had a normal fee when it actually sent much more to the miner or another recipient. The fix rejects such files for legacy inputs, prefers the full previous transaction when both types are present, and suppresses fee calculation when a witness-only UTXO cannot be verified as genuinely SegWit.
AI review queuedimprove USB validationby scgbckbone · d5aba396 · Jun 23, 2026 · 4 filesMessage 28 · OpaqueModerate 66Details
Commit message · scgbckbone
improve USB validation
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Moderate 66/100
This commit tightens input-length checks for commands that COLDCARD receives over its USB interface. Before the change, several commands would accept packets that were too short, too long, or internally inconsistent. That could let a malicious or buggy host computer read beyond intended memory boundaries, pass malformed data deeper into the firmware, or in some cases crash the device. The patch adds explicit length and bounds assertions for many USB commands and adds tests that confirm malformed packets are rejected.
AI review queuedbugfix: 1of1 multisigby scgbckbone · 6fd256db · Jun 23, 2026 · 4 filesMessage 28 · OpaqueLow 42Details
Commit message · scgbckbone
bugfix: 1of1 multisig
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Low 42/100
This commit fixes a bug in the COLDCARD hardware wallet firmware that prevented signing of 1-of-1 multisignature transactions. The change also hardens how the wallet detects single-key P2SH-wrapped SegWit inputs so it no longer misclassifies them as multisig when extra unrelated key paths are present. The bug could cause legitimate transactions to fail, but the patch also reduces the chance that a malformed PSBT could trick the device into treating a simple single-key input as a multisig one.
Lower-prioritykeep NFC export tag live for repeated probesby scgbckbone · 6716fcba · Jun 23, 2026 · 2 filesMessage 45 · ThinInformational 24Details
Commit message · scgbckbone
keep NFC export tag live for repeated probes
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 24/100
This is a bugfix for the COLDCARD hardware wallet's NFC sharing feature. Previously, when exporting data over NFC, the device would write the tag contents fresh for each tap/scan attempt. Some phones check the tag multiple times before accepting it, so the repeated re-writes could cause the export to fail or behave inconsistently. The fix writes the NFC tag once and keeps it 'live' until the user exits, allowing repeated probes to succeed. There is no direct evidence in the commit that this is a security vulnerability; it appears to be a reliability/usability fix.
Security candidateWIF Store upgradeby scgbckbone · 1dddd885 · Jun 22, 2026 · 9 filesMessage 28 · OpaqueLow 40Details
Commit message · scgbckbone
WIF Store upgrade
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
signing or wallet pathauthentication path
AI analysis · Low 40/100
This commit upgrades the COLDCARD firmware's WIF Store feature so that individual private keys imported as WIF can sign transactions even when the PSBT file lacks the usual BIP-32 key-path metadata. It adds address/scriptPubKey auto-detection, descriptor export, and Electrum-style watch-only wallet support. The change is primarily a feature enhancement, but it touches sensitive signing paths and removes a previous safety assertion that required key paths to be at least depth 8, which slightly weakens one guardrail.
Security candidateBIP-322 changes after BIP got in to the complete stateby scgbckbone · d656f371 · Jun 22, 2026 · 15 filesMessage 50 · ThinLow 43Details
Commit message · scgbckbone
BIP-322 changes after BIP got in to the complete state
50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
cryptography-sensitive pathsigning or wallet pathauthentication pathparser or protocol path
AI analysis · Low 43/100
This commit updates COLDCARD's BIP-322 (Bitcoin message signing / proof-of-reserves) implementation to match the finalized BIP-322 specification. The main user-visible change is that the message to be signed must now be embedded directly in the PSBT file under a new standard field, instead of being imported separately by the user. The device verifies that the embedded message matches the on-screen message before signing. The change also adds HSM policy checks so BIP-322 signing is governed by message-signing rules, and it prevents BIP-322 PSBTs from being finalized into broadcastable transactions. There is no obvious vulnerability introduced; it is primarily a standards-compliance and safety hardening patch.
Lower-priorityRestore borrowed secret handling in SensitiveValuesby scgbckbone · 7e92e516 · Jun 22, 2026 · 1 fileMessage 50 · ThinModerate 55Details
Commit message · scgbckbone
Restore borrowed secret handling in SensitiveValues
50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Moderate 55/100
This commit removes one line of code that was adding a secret value to an internal tracking list called 'spots' inside the COLDCARD firmware's sensitive-data handling. The title says it 'restores borrowed secret handling,' suggesting the previous code accidentally treated a borrowed/short-lived secret as something that needed to be tracked for later cleanup. The change is tiny and defensive, but the commit message alone does not explain whether any actual security bug resulted from the removed line.
AI review queuedstabilize testsby scgbckbone · 74d34cfc · Jun 22, 2026 · 5 filesMessage 28 · OpaqueInformational 15Details
Commit message · scgbckbone
stabilize tests
28/100 · OpaqueMessage clarity
✓ Subject identifies a change✓ Mentions testing or verification! 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 · Informational 15/100
This commit only changes test files in the COLDCARD firmware repository. It adds setup steps (like returning to the home screen before tests), updates menu navigation to match renamed menu items, and makes test assertions more flexible. There are no changes to the actual firmware or wallet code that users rely on, so this cannot directly affect device security.
Lower-prioritysimulator:attribute catchup with real SCANby scgbckbone · 64658621 · Jun 22, 2026 · 2 filesMessage 45 · ThinInformational 15Details
Commit message · scgbckbone
simulator:attribute catchup with real SCAN
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 15/100
This commit makes two small, unrelated tweaks to the Coldcard simulator. One adds copy-and-paste keyboard shortcuts to the simulator's terminal window. The other adds a missing 'busy_scanning' flag to the simulated QR-code scanner so it behaves more like the real hardware. Neither change affects real Coldcard devices or their security.
Lower-prioritydocs: NFC antenna by HWby scgbckbone · 755353f0 · Jun 22, 2026 · 2 filesMessage 50 · ThinInformational 15Details
Commit message · scgbckbone
docs: NFC antenna by HW
50/100 · ThinMessage clarity
✓ Subject identifies a change✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100
This commit only updates user documentation and adds a diagram showing where the NFC antenna is located on different Coldcard hardware models (Mk4, Mk5, Q1). It also updates instructions for physically disabling the NFC antenna on each model. There are no code changes and no security fix or vulnerability introduced.