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
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
authentication path
AI analysis · Moderate 57/100
This change fixes a potential bug in how COLDCARD's 'trick PIN' feature removes special unlock PINs. Before deleting those PINs, the code now reloads the trick PIN data from storage. Without the reload, the function might operate on stale in-memory data and fail to delete some trick PINs that should have been removed. That could leave behind an unintended bypass PIN after a feature is turned off, which is a security-relevant state.
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
access controlauthentication path
AI analysis · Low 42/100
This is a small bug fix in the COLDCARD hardware wallet's 'trick PIN' feature. Trick PINs let users set up special PINs that do things like wipe the device or unlock specific spending policies. The fix makes the device refresh its trick-PIN list before looking for a PIN that unlocks a spending policy. Without the refresh, the device might fail to find a newly added or changed unlock-policy PIN, which could leave a legitimate user unexpectedly unable to access funds or use a protective feature as intended. There is no direct evidence in the commit that this is exploitable by an attacker.
Lower-prioritydisallow Type Passwords if not okeys in ssspby scgbckbone · 06fa4f33 · Sep 25, 2025 · 1 fileMessage 45 · ThinLow 46Details
Commit message · scgbckbone
disallow Type Passwords if not okeys in sssp
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Low 46/100
This commit tightens access to the 'Type Passwords' feature on COLDCARD devices when operating in a restricted 'semi-seedless' mode (SSSP). Previously, the feature was available whenever the device was in emulator mode; now it also requires that SSSP-related keys are present. Without this change, a user in this restricted mode might have been able to type out stored passwords even when other seed-dependent features were intentionally disabled. The fix is a one-line guard that aligns the password-typing feature with the same key-presence check used for related features.
Lower-priorityproper label for Web 2FA warningby scgbckbone · 2d81b725 · Sep 25, 2025 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · scgbckbone
proper label for Web 2FA warning
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 15/100
This is a tiny user-interface label fix. It changes the warning label shown when a spending policy requires web-based two-factor authentication from the generic text 'CCC' to the specific policy key name. There is no security vulnerability here.
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 12/100
This commit updates a single configuration number in the COLDCARD firmware that tells the device the earliest Bitcoin block height at which a certain feature (likely related to 'ccc' or CoinJoin-style coordination) should be considered active. It is a routine date/height bump, not a code change that fixes a vulnerability. By itself it does not appear to introduce or patch a security flaw.
✓ Descriptive subject✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100
This commit only changes a test file (testing/test_multisig.py). It fixes a test helper called ms_sign_simple by adding proper derivation path handling and adjusting how xpubs are included in test multisig wallets. There is no change to the actual COLDCARD firmware code that users run, so it cannot directly affect real device security.
AI review queuedrewordby Peter D. Gray · 1a591a70 · Sep 23, 2025 · 1 fileMessage 0 · OpaqueInformational 15Details
Commit message · Peter D. Gray
reword
0/100 · OpaqueMessage clarity
! Very short subject! Too few words to establish purpose! No meaningful explanatory body
This commit only changes one word in a documentation file. It rephrases a sentence about how COLDCARD handles PSBT warnings under a policy rule. There is no code change, no behavior change, and no security fix or vulnerability introduced.
✓ Mentions testing or verification! Very short subject! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100
This commit only updates test files in the COLDCARD firmware repository. It adjusts test cases to use new internal constants, skips some secure-notes/password checks on non-Q1 hardware, replaces a slow wallet-creation helper with a faster import helper, updates menu navigation labels in a test, and adds a missing assertion for a classic P2PKH address format. There are no changes to firmware source code, no security fixes, and no disclosed vulnerability.
! Very short subject! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
parser or protocol pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Informational 0/100
This commit is titled 'ckcc bump' and changes one line in one file: external/ckcc-protocol. No diff content is available, and no verified references were supplied. There is no visible information about what was changed, why it was changed, or whether it has any security relevance.
AI review queuededitsby Peter D. Gray · 74fd862c · Sep 23, 2025 · 1 fileMessage 0 · OpaqueInformational 15Details
Commit message · Peter D. Gray
edits
0/100 · OpaqueMessage clarity
! Very short subject! Too few words to establish purpose! No meaningful explanatory body
This commit only edits a documentation file (docs/limitations.md). It updates descriptions of product limitations, such as noting that a previously reserved PIN code is now available, explaining backup file timestamps, adding a note about unsupported pay-to-pubkey transactions, and renaming a feature section. There are no code changes, no bug fixes, and no security-relevant behavior changes in the firmware itself.
AI review queuedcommentsby Peter D. Gray · 0625aa46 · Sep 23, 2025 · 3 filesMessage 0 · OpaqueInformational 15Details
Commit message · Peter D. Gray
comments
0/100 · OpaqueMessage clarity
! Very short subject! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100
This commit only adds explanatory comments to two source files and makes a tiny, non-functional cleanup in a USB error handler (removing an unused exception variable). It also adds one line to the changelog noting a separate multisig address-format bugfix. The code changes themselves do not alter program behavior or fix any security issue.
✓ 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 test code for the COLDCARD firmware. It adjusts how a test sets up a 'hobbled' Teleport signing scenario by importing wallet data before hobbled mode is enabled, and removes an unused test parameter. There is no change to the actual firmware or wallet behavior, and no security issue is present in the diff.
✓ 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 72/100
This commit fixes how COLDCARD handles different Bitcoin address formats in multisig transactions. Previously, the wallet could be tricked into treating inputs or change outputs as belonging to the wrong address type (for example, treating a classic P2SH multisig input as if it were a wrapped SegWit P2SH-P2WSH input, or vice versa). The patch makes the device strictly check that the script type matches the wallet's configured address format and verifies that the script in the transaction actually produces the expected on-chain scriptPubKey. This prevents attackers from deceiving the device about which coins are being spent or where change is going.
AI review queuedhide empty menuby Peter D. Gray · 50d20713 · Sep 23, 2025 · 1 fileMessage 28 · OpaqueInformational 20Details
Commit message · Peter D. Gray
hide empty menu
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 20/100
This commit hides the 'Spending Policy' menu item when the COLDCARD wallet does not actually have a real secret key loaded. Previously, the menu item was always shown, even though it would be empty or non-functional without a real secret. This is a minor UI cleanup rather than a serious security fix.
Security candidatemk4 fix word entry after restore via USBby scgbckbone · 2445b4d4 · Sep 22, 2025 · 5 filesMessage 45 · ThinInformational 21Details
Commit message · scgbckbone
mk4 fix word entry after restore via USB
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
seed or entropy pathauthentication path
AI analysis · Informational 21/100
This commit fixes a user-interface bug on the COLDCARD MK4 that occurred when restoring a wallet backup over USB. After a USB restore, the device was supposed to let the user enter the backup password as a series of seed words, but the on-screen word-entry menu did not work correctly because the device was not coming from the normal menu flow. The fix detects the USB case and uses a simpler, direct word-entry path instead. There is no direct evidence this is a security vulnerability; it appears to be a usability/functional bug fix.
AI review queuednitsby Peter D. Gray · a8366f55 · Sep 22, 2025 · 1 fileMessage 0 · OpaqueInformational 15Details
Commit message · Peter D. Gray
nits
0/100 · OpaqueMessage clarity
! Very short subject! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100
This is a tiny test-only change. It removes an unused function argument (`only_q1`) from a test and adds a short delay (`time.sleep(0.1)`) during a test that simulates user button presses. There is no change to the actual COLDCARD firmware code that users run, and nothing here affects security.
Security candidateseedxor allowed when hobbledby Peter D. Gray · 41b81678 · Sep 22, 2025 · 2 filesMessage 35 · OpaqueLow 44Details
Commit message · Peter D. Gray
seedxor allowed when hobbled
35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
seed or entropy path
AI analysis · Low 44/100
This commit fixes a security policy bug in the COLDCARD hardware wallet. In 'hobbled mode'—a restricted operating mode meant to limit what secrets can leave or be combined—the device was incorrectly allowing users to include the wallet's master seed as one of the parts when restoring a seed via XOR. The patch removes that option when hobbled, so a locked-down COLDCARD can no longer be tricked or misused into mixing its master seed into an externally reconstructed secret.
AI review queuednitby Peter D. Gray · 3461ce33 · Sep 22, 2025 · 2 filesMessage 0 · OpaqueInformational 15Details
Commit message · Peter D. Gray
nit
0/100 · OpaqueMessage clarity
! Very short subject! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100
This is a tiny cleanup commit. It fixes a wording error in the changelog ('after 13 PIN failures, when device is bricked' becomes 'after 13 PIN failures or when device is bricked') and removes an unused local import inside a calculator feature. There is no security-relevant code change.
Security candidateQ becomes calculator rather than e-wasteby Peter D. Gray · 4457576a · Sep 22, 2025 · 9 filesMessage 45 · ThinLow 27Details
Commit message · Peter D. Gray
Q becomes calculator rather than e-waste
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
authentication path
AI analysis · Low 27/100
This update changes what happens on the COLDCARD Q hardware wallet after someone enters the wrong PIN 13 times and the device becomes permanently locked ("bricked"). Instead of showing only a useless "I Am Brick!" screen, the Q model now turns into a simple calculator. The change also lets the calculator's login prompt check whether PIN attempts remain before trying to log in, and adds simulator options so developers can test bricked devices. There is no direct evidence in the commit that this fixes an active security vulnerability; it reads as a usability enhancement for a device that is already considered lost.
! Very short subject! Too few words to establish purpose! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
authentication path
AI analysis · Low 42/100
This commit reorganizes how a COLDCARD device decides it is 'bricked' and what it does next. It moves the brick check from the main boot code into the PIN-handling code, and slightly cleans up a calculator/login helper. The change appears intended to make bricked devices stop earlier in boot and still offer a calculator-only recovery screen on QWERTY models. There is no clear vulnerability being fixed; it reads more like a defensive hardening or refactor.
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
authentication path
AI analysis · Low 42/100
This commit changes what a COLDCARD Q device does when its secure element (SE) is 'bricked'—a state where the hardware security chip is no longer usable. Previously, the device immediately entered DFU (device firmware update) mode and stopped. After this change, the device first opens a calculator-like text interface that can run forever, and only then enters DFU mode. The commit title 'Q: brick into forever calculator' suggests this is intentional behavior for bricked devices, not a vulnerability. The change also removes the ability to enter a PIN from within that calculator when reached through this bricked path, so it does not appear to provide a way to bypass authentication.
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body! Contains work-in-progress language! Opaque security-relevant change
Why it was queued
seed or entropy path
AI analysis · Informational 17/100
This commit adds a new menu option called 'Restore Seed XOR' to the Temporary Seed menu on a COLDCARD device. It simply exposes an existing feature (restoring a seed from XOR-encoded parts) in a new place where users can reach it more easily. There is no code change to how seeds are stored, processed, or protected.
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body! Contains work-in-progress language
Why it was queued
second-pass: opaque commit message
AI analysis · Moderate 59/100
This commit fixes a security bug in the COLDCARD firmware where the 'SSSP' (a spending-limit / hobbled mode feature) settings were being saved under the current temporary seed instead of the master seed. That meant switching to a different temporary seed could bypass or corrupt the spending policy. The patch forces SSSP settings to be read from and written to the master seed only, and hides the 'Destroy Seed' menu item when only a temporary seed is loaded.
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
parser or protocol pathsecond-pass: security-sensitive path
AI analysis · Informational 0/100
This commit updates a linked external component (ckcc-protocol) to its latest master version. No actual code changes are shown, and no security-related description is provided. There is not enough information to assess whether this update fixes or introduces any security issue.
✓ Mentions testing or verification! 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 · Informational 15/100
This commit only adjusts test files and removes a couple of unused imports from production code. There is no security fix or vulnerability being patched.