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 queuedAdd regression test for non-object JSON message-sign inputby copilot-swe-agent[bot] · adb7baa8 · Sep 5, 2026 · 1 fileMessage 91 · StrongLow 46Details
Commit message · copilot-swe-agent[bot]
Add regression test for non-object JSON message-sign input
Test requested in review on Coldcard/firmware#808: valid JSON that is not an object (or lacks the "msg" key) must produce a clean failure story, never a device crash.
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Why it was queued
fuzzing or regression evidencesecond-pass: broader security terminology
AI analysis · Low 46/100
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), or a JSON object missing the required 'msg' key, the device shows a clean error message instead of crashing. The commit itself does not change any firmware code, so it does not fix or introduce a vulnerability directly. It is a regression test requested during review of an earlier change, likely to make sure a previous fix stays effective.
AI review queuedOVC clear stale outputs from new_outputsby scgbckbone · 62163ccd · Sep 4, 2026 · 1 fileMessage 45 · ThinLow 41Details
Commit message · scgbckbone
OVC clear stale outputs from new_outputs
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 41/100
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 previous signing attempt that failed or was aborted. If stale records remained, they could potentially confuse the wallet's checks about where money is going, which in rare cases might affect user-facing warnings or transaction validation.
AI review queuedDrop ValueError message string to save flash spaceby copilot-swe-agent[bot] · dc89513c · Sep 3, 2026 · 1 fileMessage 65 · AdequateInformational 15Details
Commit message · copilot-swe-agent[bot]
Drop ValueError message string to save flash space
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100
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 raises an exception when invalid JSON input is provided; only the descriptive text is dropped.
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). The actual code fix is not shown here, so we can only judge the issue from the changelog description. It appears to be a denial-of-service-style crash affecting message signing over NFC, QR, or SD card JSON files.
AI review queuedFix uncaught AttributeError on non-object JSON in parse_msg_sign_requestby copilot-swe-agent[bot] · d55ddbce · Sep 3, 2026 · 1 fileMessage 65 · AdequateInformational 23Details
Commit message · copilot-swe-agent[bot]
Fix uncaught AttributeError on non-object JSON in parse_msg_sign_request
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 23/100
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 checks the parsed JSON type and raises a proper, handled error instead of letting an AttributeError propagate. There is no direct evidence in the commit that this is exploitable for security harm, but unhandled exceptions can sometimes cause unexpected device behavior or denial of service.
AI review queuedSigned for mk release.by Peter D. Gray · e6d01c36 · Sep 3, 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 (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, and no security-relevant modifications visible in the diff.
AI review queuedSigned for q1 release.by Peter D. Gray · a310e1dd · Sep 3, 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 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, and no security-relevant content in the diff itself.
AI review queuedupdate block heightby Peter D. Gray · 3caf599e · Sep 3, 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 965,337 to 965,338. It is a routine, automatically generated data refresh with no code logic changes and no apparent security relevance.
AI review queuednew policy w blank linesby Peter D. Gray · 3d8f90f1 · Sep 3, 2026 · 1 fileMessage 38 · OpaqueInformational 15Details
Commit message · Peter D. Gray
new policy w blank lines
38/100 · OpaqueMessage clarity
✓ Subject identifies a change✓ Names a concrete action or component! No meaningful explanatory body
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 changes and no security relevance in the commit itself.
AI review queuedupdate for new releaseby Peter D. Gray · ea2b89bf · Sep 3, 2026 · 4 filesMessage 28 · OpaqueModerate 58Details
Commit message · Peter D. Gray
update for new release
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
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, and adds a new set of notes for versions 5.6.2 and 1.5.2Q. The actual code changes are not present in the diff, only descriptions of them. The described issues include USB data leaks, PSBT tampering, firmware-update bypasses, virtual-disk file parsing flaws, and duress-wallet exposure in Delta Mode. Because we cannot see the patches themselves, we can only assess the claimed severity, not verify the fixes.
AI review queuedupdate block heightby Peter D. Gray · 15deb2f6 · Sep 3, 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,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.
✓ 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 2/100
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 provided by the project or any verified source. On its own, this single-line submodule bump tells us nothing about whether a security issue was fixed or introduced.
AI review queuedtweaksby Peter D. Gray · e166ffdd · Sep 2, 2026 · 1 fileMessage 0 · OpaqueInformational 15Details
Commit message · Peter D. Gray
tweaks
0/100 · OpaqueMessage clarity
! Very short subject! Too few words to establish purpose! No meaningful explanatory body
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.
AI review queuedadd commentby Peter D. Gray · b2a47fc9 · Sep 1, 2026 · 1 fileMessage 0 · OpaqueInformational 15Details
Commit message · Peter D. Gray
add comment
0/100 · OpaqueMessage clarity
! 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 adds a plain-language comment ('# 10 years') next to an existing constant that sets how far in the future a transaction's locktime can be. No code behavior changed.
✓ 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 29/100
This change adds a warning when a Bitcoin transaction's locktime is set to a block height more than 10 years in the future. It does not block the transaction but alerts the user, helping catch potential tricks where a transaction is made unspendable for a very long time without the user noticing.
Presence of the redeem script is not enough: the input is signed as segwit based on the witness script, while witness_utxo_is_provably_segwit decides amount trust from the redeem script field. A present-but-wrong redeem script passed the new presence check yet still failed the provably-segwit test, leaving the fee unverifiable with only a warning before approval - the same unknown-fee hole as the missing case.
Require the redeem script to be exactly the P2WSH wrapper of the witness script. Add regression test with a junk redeem script (verified to reach the approval UX without this fix), and update the changelog.
78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
defensive validationfuzzing or regression evidencesigning or wallet pathsecond-pass: near security thresholdsecond-pass: security-sensitive path
AI analysis · High 73/100
This update tightens a recently added safety check in the COLDCARD firmware. For a specific type of Bitcoin address (P2SH-P2WSH), the device now verifies that the redeem script provided in the transaction data exactly matches the expected wrapper around the witness script. Previously, a malformed or junk redeem script could slip past the check, causing the device to sign the transaction while being unable to reliably verify the input amount and thus the fee. That could let an attacker trick a user into approving a transaction with a hidden or excessive fee.
AI review queuedSigned for Edge release.by Peter D. Gray · 8ff1a0fa · Aug 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 cryptographic hashes for two new firmware files and updates a hash for a changelog file, then re-signs the file with a PGP signature. There are no code changes, no bug fixes, and no security-related content in the commit message or diff.
This is a one-line changelog note, not the actual code fix. It describes a bug where, if the main wallet was empty and a temporary seed was active, importing wallets or restoring backups would incorrectly become permanent changes to the master wallet instead of staying temporary. The note suggests the real fix happened elsewhere, so this commit alone does not show what code changed or how severe the underlying bug is.
✓ 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 58/100
This fix corrects a developer-only backup restore feature so that it always creates a temporary wallet when any real wallet secret is already stored on the device. Before the fix, the restore could report success while silently failing to overwrite the active wallet because the operation was treated as a no-op. The change prevents misleading success reports and accidental or malicious overwrites of the real wallet.
AI review queuedbugfix: guard permanent key imports with temporary walletsby scgbckbone · 2504cde0 · Aug 31, 2026 · 2 filesMessage 30 · OpaqueModerate 58Details
Commit message · scgbckbone
bugfix: guard permanent key imports with temporary wallets
30/100 · OpaqueMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body! Contains work-in-progress language
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Moderate 58/100
This commit fixes a bug in the COLDCARD hardware wallet where importing a permanent private key could incorrectly be allowed while a temporary wallet was still active. The old check only verified that the main secure-element secret was blank, but that condition can be true even when a temporary wallet is loaded. The new check ensures no secret of any kind is active before a permanent key import proceeds. If the bug were triggered, a permanent import might overwrite or coexist unexpectedly with an active temporary wallet, potentially confusing the user about which wallet is in control or causing loss of funds if the wrong wallet is used.
✓ 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 update fixes a bug in the COLDCARD hardware wallet where a malformed Bitcoin transaction file (PSBT) could slip through if it described a wrapped SegWit input but left out a required piece of data called the redeem script. Without that script, the wallet could not correctly calculate the transaction's fee, which might let an attacker trick the user into approving a transaction that sends far more in fees than intended. The fix makes the wallet reject such malformed files outright.
AI review queuedSigned for mk release.by Peter D. Gray · fa47dc5c · Aug 20, 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 a release signature file. It adds two new official firmware file hashes for COLDCARD Mk devices and refreshes the PGP signature covering the file. There are no code changes, no bug fixes, and no security-relevant behavior changes in the firmware itself.
AI review queuedSigned for q1 release.by Peter D. Gray · 0fd05d49 · Aug 20, 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 refreshes SHA-256 hashes for two markdown files and adds hashes for two newly released firmware files, then re-signs the file with PGP. No source code, security logic, or vulnerability fix is present in the diff.
AI review queuedupdate block heightby Peter D. Gray · 042f3383 · Aug 20, 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,191 to 963,314, along with its timestamp. It is a routine data refresh with no code logic changes and no apparent security relevance.
AI review queuedpackagingby Peter D. Gray · 58c30b5e · Aug 20, 2026 · 2 filesMessage 0 · OpaqueCritical 100Details
Commit message · Peter D. Gray
packaging
0/100 · OpaqueMessage clarity
! Very short subject! Too few words to establish purpose! No meaningful explanatory body
This commit is a changelog-only update that publicly discloses a severe, long-running security flaw in COLDCARD hardware wallets: for roughly five years, the devices generated cryptographic seeds with far less randomness than intended. On older Mk3 devices, seed entropy may have been as low as about 40 bits, and on Mk4/Mk5/Q devices as low as about 72 bits. That makes generated private keys much easier for an attacker to guess or reproduce, putting any funds secured by those keys at risk. The changelog also lists many other security fixes, including protections against a compromised USB host altering transactions before signing, restrictions on reading sensitive staged data over USB, and hardening of the random-number generator. Users are advised to upgrade immediately and regenerate any seeds created with affected firmware.