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.
AI review queuedupdate block heightby Peter D. Gray · 98b0c906 · Aug 19, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · Peter D. Gray
update block height
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100
This commit simply increments an automatically-generated Bitcoin block height constant by one. It is a routine data update with no code changes and no security implications.
AI review queuedupdate block heightby Peter D. Gray · 84d49266 · Aug 19, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · Peter D. Gray
update block height
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100
This commit simply updates a stored Bitcoin blockchain height number from 963,074 to 963,190, along with its timestamp. It is a routine data refresh with no code logic changes and no apparent security relevance.
AI review queuedexternal/ckcc-protocol: bump to c39db297by scgbckbone · 9fd64667 · Aug 19, 2026 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · scgbckbone
external/ckcc-protocol: bump to c39db297
45/100 · ThinMessage clarity
✓ 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 15/100
This commit only updates a linked external code submodule (ckcc-protocol) to a newer version. The actual code changes are not shown in this diff, only the submodule pointer was moved. There is no information in the commit itself about what changed in the submodule or whether it has any security relevance.
AI review queuedenhancement: make multisig rename explicitby scgbckbone · a1857885 · Aug 19, 2026 · 5 filesMessage 45 · ThinLow 34Details
Commit message · scgbckbone
enhancement: make multisig rename explicit
45/100 · ThinMessage clarity
✓ 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 · Low 34/100
This commit changes how COLDCARD handles multisig wallet names. Previously, re-importing a wallet file or descriptor with a different name would silently rename the existing wallet. Now, renaming must be done through an explicit 'Rename' menu action, and re-importing a duplicate with a different name is rejected. This is a security-hardening UX change that prevents accidental or malicious wallet renaming during import, which could confuse users about which wallet they are signing for.
AI review queuedupdate next changelogby scgbckbone · c7d7ae03 · Aug 19, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · scgbckbone
update next changelog
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
This commit only edits the project's 'Next-ChangeLog.md' file. It rewrites upcoming release notes, adds details, fixes wording, and updates release dates. No actual firmware code, build scripts, or security behavior changed in this commit. The changelog text does describe many security fixes, but those fixes are already present in other commits; this commit merely documents them.
AI review queuedupdate block heightby Peter D. Gray · 3f640d74 · Aug 18, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · Peter D. Gray
update block height
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100
This commit simply updates a stored Bitcoin blockchain height number from 960,398 to 963,074, along with its timestamp. It is a routine data refresh with no code logic changes and no apparent security relevance.
AI review queuedimprove tests stabilityby scgbckbone · 8e0f2bbb · Aug 18, 2026 · 4 filesMessage 38 · OpaqueInformational 15Details
Commit message · scgbckbone
improve tests stability
38/100 · OpaqueMessage clarity
✓ Subject identifies a change✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Informational 15/100
This commit only changes test code for the COLDCARD firmware. It makes the test suite more stable by letting developers specify a custom Bitcoin daemon path, adding a PSBT2 test flag, fixing a test that checks upload-during-approval behavior, and importing an extra constant for user-interface tests. None of these changes affect the actual firmware that runs on the device, so there is no security risk to users.
AI review queuededitsby @Bibo-dochex · ca286530 · Aug 17, 2026 · 1 fileMessage 0 · OpaqueInformational 15Details
Commit message · @Bibo-dochex
edits
0/100 · OpaqueMessage clarity
! Very short subject! Too few words to establish purpose! No meaningful explanatory body
This commit only edits the wording of an upcoming release changelog. It does not change any firmware code, cryptographic algorithms, or security behavior. The edits clarify and reorganize descriptions of previously planned entropy-generation improvements, but they do not themselves introduce or fix any vulnerability.
AI review queuedbugfix: bound firmware to world checksumby scgbckbone · aaa3b826 · Aug 17, 2026 · 4 filesMessage 45 · ThinHigh 71Details
Commit message · scgbckbone
bugfix: bound firmware to world checksum
45/100 · ThinMessage clarity
✓ 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 71/100
This commit fixes a bug in the COLDCARD firmware signing tools and headers. Previously, the maximum allowed firmware size for Mk4/Q1 devices was set too large: it did not account for a 512 KB filesystem region and a small DFU wrapper block at the end of flash. As a result, a firmware image could be signed and accepted even though part of it would extend beyond the region protected by the device's 'world checksum' integrity check. The patch shrinks the official maximum firmware length so that the entire image stays within the integrity-checked region. The changelog explicitly calls this a bugfix that 'reject[s] firmware images that extend past the world-checksum-covered flash region.'
AI review queuedConfirm cloned seed fingerprintby scgbckbone · 3856c9aa · Aug 16, 2026 · 3 filesMessage 35 · OpaqueLow 43Details
Commit message · scgbckbone
Confirm cloned seed fingerprint
35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Low 43/100
This update changes the Coldcard wallet cloning process so that the receiving device now displays the restored seed's master fingerprint and asks the user to confirm it before installing. Previously, the clone process skipped this confirmation step. The change helps prevent a user from accidentally accepting a different seed than intended during a clone, which could lead to backing up or using the wrong wallet.
AI review queuedimprove tests stabilityby scgbckbone · b9cc2276 · Aug 16, 2026 · 4 filesMessage 38 · OpaqueInformational 15Details
Commit message · scgbckbone
improve tests stability
38/100 · OpaqueMessage clarity
✓ Subject identifies a change✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100
This commit only changes automated test files for the COLDCARD hardware wallet firmware. It adds small delays, extra button presses, and adjusts test parameters to make the test suite run more reliably. There are no changes to the actual firmware code that runs on the device, so this cannot affect real users or introduce security vulnerabilities.
AI review queuedbugfix: allow password typing with USB disabledby scgbckbone · 627ca44f · Aug 15, 2026 · 2 filesMessage 45 · ThinLow 28Details
Commit message · scgbckbone
bugfix: allow password typing with USB disabled
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
second-pass: broader security terminology
AI analysis · Low 28/100
This commit fixes a bug in the COLDCARD password-notes feature. Previously, the 'Send Password' menu option was accidentally hidden when USB was disabled, because the code reused a setting meant for something else. The fix removes that wrong condition so the option always appears. This is a usability bugfix, not a security vulnerability: it restores intended access rather than opening an unintended one.
AI review queuedbugfix: simulator crash from desynced LED pipeby hitechhayekian · 3548a5b5 · Aug 14, 2026 · 2 filesMessage 78 · AdequateInformational 23Details
Commit message · hitechhayekian
bugfix: simulator crash from desynced LED pipe
The LED pipe is framed as two bytes per message, [mask, state], but the SE1 "greenlight firmware" path (submethod 5) still wrote a single byte left over from the old 4+4-bit protocol.
That stray byte shifts the stream by one for good: every later read(2) straddles a message boundary and decodes garbage LED state, and the trailing lone byte makes simulator.py's `mask, lset = c` die with ValueError: not enough values to unpack (expected 2, got 1).
Write [mask, state] like every other caller does, and add a test that holds all led_pipe writers to the two-byte framing.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
second-pass: broader security terminology
AI analysis · Informational 23/100
This commit fixes a simulator-only bug in the COLDCARD firmware's development/test tooling. A special code path that simulates the secure element's 'greenlight' LED signal was writing one byte to an internal pipe instead of the expected two bytes. That single-byte write shifted all later messages out of alignment, eventually causing the simulator to crash with a Python unpacking error. The fix changes that one write to two bytes and adds a regression test to catch similar mistakes. It does not affect real COLDCARD hardware or user funds.
AI review queuedreviewby scgbckbone · 8c07dbe3 · Aug 10, 2026 · 1 fileMessage 0 · OpaqueInformational 15Details
Commit message · scgbckbone
review
0/100 · OpaqueMessage clarity
! Very short subject! Too few words to establish purpose! No meaningful explanatory body
This commit only updates documentation. It clarifies that a BIP39 passphrase wallet backup stores an extended private key (XPRV) rather than the seed words or passphrase, and adds version numbers for older firmware behavior. There is no code change and no security fix or vulnerability introduced.
AI review queuedcautions, editby Peter D. Gray · c849c4e0 · Aug 1, 2026 · 1 fileMessage 18 · OpaqueInformational 15Details
Commit message · Peter D. Gray
cautions, edit
18/100 · OpaqueMessage clarity
✓ Subject identifies a change! Too few words to establish purpose! No meaningful explanatory body
This commit is a minor formatting edit to the README.md file. It changes a 'Security Advisory' heading from being displayed as a code block (with diff-style coloring) to a normal Markdown heading, and adds a horizontal rule. There are no code changes, no new security claims beyond what was already present, and no functional impact on the COLDCARD firmware.
AI review queuedcautionsby Peter D. Gray · 266f581a · Aug 1, 2026 · 1 fileMessage 0 · OpaqueCritical 100Details
Commit message · Peter D. Gray
cautions
0/100 · OpaqueMessage clarity
! Very short subject! Too few words to establish purpose! No meaningful explanatory body
This commit adds a security advisory to the COLDCARD firmware README. Coinkite states that firmware releases from 2021 through July 2026 contained a bug that produced weak randomness (poor entropy) when generating secrets such as wallet seed phrases. Because weak randomness can make private keys guessable by attackers, any Bitcoin or other cryptocurrency funds protected by seeds created on affected COLDCARD devices during that period may be at risk of theft. The advisory recommends regenerating seeds and moving funds immediately, and lists specific firmware versions where the issue is fixed. The commit itself only changes documentation; it does not contain the actual code fix.
AI review queuedbugfix: block SIGHASH_SINGLE by defaultby scgbckbone · f87a8051 · Aug 1, 2026 · 3 filesMessage 45 · ThinModerate 64Details
Commit message · scgbckbone
bugfix: block SIGHASH_SINGLE by default
45/100 · ThinMessage clarity
✓ 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 · Moderate 64/100
This update changes the COLDCARD hardware wallet so that it refuses to sign Bitcoin transactions using the SIGHASH_SINGLE signature mode unless the user has explicitly enabled a 'Warn' setting. SIGHASH_SINGLE lets a signer lock in only one output while leaving other outputs changeable later. That could allow someone to alter where remaining funds go after the COLDCARD has already signed. The change adds SIGHASH_SINGLE to the existing safety check that already blocked SIGHASH_NONE, and it includes a test to confirm the block works.
AI review queuedSigned for Edge release.by Peter D. Gray · 9a88e1a5 · Jul 31, 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 release signature file. It adds two new firmware file hashes for recently built releases and refreshes the PGP signature that covers the file. There is no code change and no indication of a security fix or vulnerability.
AI review queuedSigned for MK3 release.by Peter D. Gray · f32e0579 · Jul 31, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · Peter D. Gray
Signed for MK3 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 a signed release manifest file (signatures.txt). It refreshes cryptographic hashes for release notes and adds a new firmware file entry, then re-signs the file with PGP. There is no code change and no security vulnerability is present in the diff.
AI review queuedupdates mk3by Peter D. Gray · 50fceee9 · Jul 31, 2026 · 2 filesMessage 0 · OpaqueCritical 85Details
Commit message · Peter D. Gray
updates mk3
0/100 · OpaqueMessage clarity
! Very short subject! Too few words to establish purpose! No meaningful explanatory body
This commit updates Coldcard's release notes to announce that a previously disclosed limited-entropy bug in seed generation now also affects Mk3 hardware, and that a new Mk3 firmware version 4.2.0 has been released as a hotfix. The earlier notes told Mk3 users to stop generating seeds and move funds; the revised notes say Mk3 users can safely generate seeds again after installing 4.2.0. Seeds created before this fix may have only about 40 bits of randomness, making them far weaker than intended and potentially guessable by attackers.
AI review queuedupdate block heightby Peter D. Gray · 1f03a52f · Jul 31, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · Peter D. Gray
update block height
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100
This commit simply updates a hardcoded Bitcoin blockchain height number in a file that is automatically generated. There is no security issue here.
AI review queuedSigned for mk release.by Peter D. Gray · f7945e0b · Jul 31, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · Peter D. Gray
Signed for mk 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 release signature file. It adds two new file hashes for a COLDCARD Mk firmware release and refreshes the PGP signature that covers the file. There is no code change, no bug fix, and no security patch in the diff itself.
AI review queuedupdate block heightby Peter D. Gray · 85b1fe56 · Jul 31, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · Peter D. Gray
update block height
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100
This commit simply updates a hardcoded Bitcoin block height number in a single file by one block, along with its timestamp. There is no code logic change and no apparent security relevance.
AI review queuedSigned for q1 release.by Peter D. Gray · 47deea23 · Jul 31, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · Peter D. Gray
Signed for q1 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 a signed release manifest file (signatures.txt). It records new cryptographic hashes for firmware release files and their PGP signature. There is no code change, no bug fix, and no security patch in the commit itself.
AI review queuedupdate block heightby Peter D. Gray · e1fd9b85 · Jul 31, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · Peter D. Gray
update block height
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100
This commit simply updates a recorded Bitcoin block height number in a generated file, moving it from block 960,344 to 960,347. There is no code logic change, no user-facing behavior change, and no security relevance.