KS
← All projectsKeystone

Keystone 3 firmware

Open-source device firmware for Keystone 3 hardware wallets.

BitcoinHardware walletsNormal
Repository coverage

553 commits in the local evidence base

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.

119security candidates294second-pass queue551AI analyses
9commits · 30 days
37commits · 60 days
279commits · 180 days
504commits · 365 days
Backfill bands
Aug 5 → Feb 6260 seen14 candidatesComplete
Feb 6 → Jun 6117 seen7 candidatesComplete
Jun 6 → Jul 639 seen4 candidatesComplete
Jul 6 → Aug 5115 seen4 candidatesComplete
Commit communication

Does the history explain itself?

Message quality measures whether a commit identifies its scope, purpose, rationale, testing, and supporting references. It does not change the security-severity score.

42/100 average clarity
35Strong · 80–100
72Adequate · 60–79
211Thin · 40–59
235Opaque · 0–39
39security candidates with opaque commit messaging
Read the scoring rubric →
Developer activity

Who is changing the project?

Public Git author strings; identities are not independently verified.

DeveloperCommitsCandidatesAnalyzedHigh riskMessage avg.
soralit11634116248
Adam Tucker931193263
aaron30430248
Soralit959154
ww351268717652176026
willwang15215025
John Boyd626088
github-actions[bot]323076
Aaron Chen222068
Qkin-Keystone26126036
qkin12112050
Greg Pfeil414071
Analysis record

Published AI watches

Last scanned 0 minutes ago

Low 42 AI analysisMessage 58 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Merge pull request #2293 from KeystoneHQ/merge/v3.1.0

This is a large firmware release merge (v3.1.0) for the Keystone 3 hardware wallet. The visible changes are mostly a major FreeRTOS kernel upgrade (from v10.x to v11.3.0), build-system improvements, and user-facing feature tweaks such as b…

FreeRTOS kernel major version upgrade (10.x -> 11.3.0) with MPU hardeningSwitch from ARM_CM4F non-MPU port to ARM_CM4_MPU portNew MPU configuration flags: configTOTAL_MPU_REGIONS=8, configENFORCE_SYSTEM_CALLS_FROM_KERNEL_ONLY=1, configALLOW_UNPRIVILEGED_CRITICAL_SECTIONS=0
0c0ae467by stone+59616−26981300 files
Vendor flagged security relevance
Informational 15 AI analysisMessage 48 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

chore: update ci (#2292)

This commit only updates a Git submodule pointer in a release-tracking file. The actual code change is a one-line pointer update from one commit hash to another in a file named 'keystone3-firmware-release'. There is no visible security-rel…

90d1c789by Soralit+1−11 file
No security note in commit
Informational 15 AI analysisMessage 40 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

chore: update ci

This commit only updates a Git submodule pointer (keystone3-firmware-release) from one commit hash to another. No source code, build scripts, CI configuration, or security-related files are changed in the visible diff. There is no evidence…

a7f6db29by Soralit+1−11 file
No security note in commit
Moderate 58 AI analysisMessage 28 · Opaque
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

release 3.1.0

This is a large firmware release commit (version 3.1.0) for the Keystone 3 hardware wallet. The most significant change visible in the diff is a major upgrade of the FreeRTOS real-time operating system kernel from version 10.x to 11.3.0, c…

FreeRTOS major version upgrade (10.x → 11.3.0) with MPU port enabledNew MPU sandbox task/runtime/validator files addedconfigENFORCE_SYSTEM_CALLS_FROM_KERNEL_ONLY=1 and configALLOW_UNPRIVILEGED_CRITICAL_SECTIONS=0 set
2b007a29by Soralit+59615−26980300 files
Vendor flagged security relevance
Informational 15 AI analysisMessage 76 · Adequate
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Merge release v3.0.8 (#2291)

This commit is a routine version-bump merge for release v3.0.8. It only updates changelogs, a Git submodule pointer, and a build version number. There is no code change visible in the diff and nothing that suggests a security fix or vulner…

b5e8f9fcby github-actions[bot]+18−24 files
No security note in commit
Low 47 AI analysisMessage 76 · Adequate
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Merge release v3.0.6 (#2290)

This firmware update adds support for Solana's new V1 transaction format and changes how oversized or malformed transaction details are displayed. The code introduces a dedicated parser for V1 messages with strict size and structure checks…

New parser enforces hard limits on V1 message fields and rejects malformed 0x81-prefix payloads instead of falling back to message signingCompute-budget instructions in V1 are explicitly ignored to prevent fee-display spoofingUI pagination change for large transaction details reduces truncation risk
87b78ae1by github-actions[bot]+564−2812 files
No security note in commit
Informational 15 AI analysisMessage 68 · Adequate
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

pin to new release config (#2285)

This commit only updates a Git submodule pointer (keystone3-firmware-release) from one commit hash to another. There is no code change visible in the diff, no description of what the new release config contains, and no security-related inf…

bc01c889by Aaron Chen+1−11 file
No security note in commit
Informational 15 AI analysisMessage 68 · Adequate
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

update the release repo (#2282)

This commit simply updates a Git submodule pointer for the project's release repository. There is no visible code change, no description of any security issue, and no indication this is anything other than a routine release-tracking update.

3ac7e802by Aaron Chen+1−11 file
No security note in commit
Moderate 59 AI analysisMessage 76 · Adequate
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Merge release v3.0.4 (#2279)

This is a routine firmware release merge (v3.0.4) for the Keystone 3 hardware wallet. The bulk of the changes are UI tweaks, new feature support (Solana CLI, Lace Wallet), and hardening fixes found during an internal 'regular AI review'. T…

NUL-byte rejection in EIP-712 typed data parsingC-string conversion hardening against NUL bytesNull-pointer and UTF-8 validation added to UR parsing entry points
6ab436a2by github-actions[bot]+4960−548845 files
No security note in commit
Informational 13 AI analysisMessage 59 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Build fix (#2273)

This commit is a routine build-system and code-formatting fix. It resets cached CMake build options so each build starts from known defaults, makes cbindgen header-generation failures visible instead of silently ignored, runs Rust formatti…

8568a657by stone wang+8−145 files
No security note in commit
Low 44 AI analysisMessage 36 · Opaque
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

limit file count (#2272)

This commit adds a hard cap on how many files the device will list from its SD card when loading multi-signature Bitcoin wallet data. It also tightens up null-pointer and length checks while scanning directories. The likely goal is to prev…

Unbounded directory listing now bounded by FATFS_MAX_FILE_NUMBERNull-pointer guards added for fileName, number, and path parametersLength checks added before copying filenames into caller buffers
de6879c3by stone wang+31−146 files
No security note in commit
Low 46 AI analysisMessage 73 · Adequate
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Merge pull request #2268 from KeystoneHQ/regular-review-fix

This commit tightens which old-style Bitcoin-like transactions the Keystone hardware wallet will accept. It now rejects raw protobuf Bitcoin (BTC) and Dogecoin (DOGE) legacy UTXO transactions, allowing only Bitcoin Cash (BCH), Dash (DASH),…

Deprecation of raw-protobuf Bitcoin transaction handlingRejection of unsupported legacy UTXO variants at multiple entry pointsShift from coin_code string matching to protobuf variant matching for legacy path eligibility
1c70d3d4by Soralit+134−166 files
No security note in commit
Moderate 61 AI analysisMessage 62 · Adequate
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

fix: mark legacy utxo transaction as deprecated and disable btc legacy transactions

This commit disables the older, raw-protobuf signing path for Bitcoin and Dogecoin transactions in the Keystone 3 hardware wallet firmware. It keeps the legacy path active only for Bitcoin Cash (BCH), Dash (DASH), and Litecoin (LTC). The c…

Disables a legacy transaction parsing/signing code path for Bitcoin and DogecoinAdds explicit rejection checks before raw transaction parsing, checking, signing, and view routingSwitches discriminator from coin_code string to protobuf transaction variant to prevent spoofing
1fcd2346by Soralit+134−166 files
No security note in commit
Moderate 63 AI analysisMessage 58 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Merge pull request #2264 from KeystoneHQ/regular-review-fix

This firmware update is a routine 'regular review fix' that hardens how the Keystone 3 hardware wallet checks and displays several cryptocurrency transactions before signing. The most important security changes are: (1) the sign button is …

Sign slider disabled until parse success prevents premature approvalArweave DataItem tag-count mismatch now rejected in pre-checkAvalanche transaction re-validated by type in pre-check, tampered asset ID rejected
87c7e7e2by Soralit+623−20423 files
No security note in commit
Moderate 67 AI analysisMessage 58 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Merge pull request #2263 from KeystoneHQ/driver-optimize

This commit updates the hardware random number generator (TRNG) driver in a cryptocurrency hardware wallet firmware. It adds detection for a physical fault/attack signal from the TRNG and, if triggered, wipes the random data and aborts via…

Added TRNG fault/attack status detection (TRNG_IT_RNG0_ATTACK)Zeroization of sensitive local buffer and output buffer on TRNG failureAssertion abort on detected TRNG attack condition
a409efe0by Soralit+29−51 file
No security note in commit
Moderate 59 AI analysisMessage 18 · Opaque
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

driver optimzie

This commit updates the hardware random number generator (TRNG) driver in a cryptocurrency hardware wallet firmware. It adds detection for a physical tamper/attack signal from the TRNG chip and, if an attack is detected, wipes the random d…

New check of TRNG_IT_RNG0_ATTACK tamper/attack interrupt statusFailure path now zeroes output and local buffer before abortingAddition of ASSERT guards and secure memset_s usage
25f3d951by ww3512687+29−51 file
No security note in commit
Moderate 61 AI analysisMessage 57 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

fix: regular ai review fix

This firmware update for the Keystone 3 hardware wallet fixes several security and safety issues found during an internal AI-assisted review. The most important changes are: (1) the signing slider is now disabled until a transaction is ful…

Signing slider disabled until parse success prevents approval of malformed transactionsArweave DataItem tag-count mismatch rejected in pre-check before confirmation pageAvalanche transaction re-validated by type during fingerprint check
edbeae79by soralit+623−20423 files
No security note in commit
High 76 AI analysisMessage 58 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Merge pull request #2262 from KeystoneHQ/regular-review-fix

This firmware update fixes several security and safety issues found during a regular AI-assisted code review. The most important changes are: (1) Zcash wallet data is now encrypted with a key derived from the wallet seed and a fresh random…

Zcash UFVK encryption key changed from sha256(password) to seed-derived BIP32 keyZcash UFVK IV changed from deterministic seed-derived value to fresh TRNG-generated IV per blobZcash UFVK storage format now uses magic-prefixed blob with embedded IV and rejects legacy blobs
04d942ffby Soralit+1852−52633 files
No security note in commit
High 80 AI analysisMessage 57 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

fix: regular AI review and fix

This firmware update fixes several security and safety issues found during an internal AI-assisted review. The most important changes are: (1) Zcash wallet data was being encrypted with a key derived from the user's login password and a fi…

Zcash UFVK encryption key changed from sha256(login password) to seed-derived BIP32 keyZcash UFVK IV changed from deterministic seed-derived value to fresh TRNG-generated IV per encryptionNew 'z2' UFVK blob format stores IV with ciphertext; legacy blobs rejected/migrated
776d8832by soralit+1852−52633 files
Vendor flagged security relevance
Moderate 59 AI analysisMessage 58 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Merge pull request #2260 from KeystoneHQ/replace-lvgl-rand

This commit replaces the on-screen keyboard shuffle and a word-list randomizer so they use the device's true random-number generator (TRNG) instead of LVGL's weaker pseudo-random function. The change is defensive: it removes a source of pr…

Replaced pseudo-random generator with hardware TRNG in security-sensitive shuffle operationsRemoved fixed-range modulo reduction bias source (`lv_rand(0, 2048) % n`)Changed include from LVGL UI library to device TRNG driver in utility code
230abd77by Soralit+8−32 files
No security note in commit
Repository ledger

Explore captured commits

Expand any commit for its author, full message, clarity score, changed files, triage signals, analysis, and source link.

AI review queuedMerge release v3.0.6 (#2290)by github-actions[bot] · 87b78ae1 · Sep 15, 2026 · 12 filesMessage 76 · AdequateLow 47Details
Commit message · github-actions[bot]

Merge release v3.0.6 (#2290)

* feat(solana): support V1 transaction messages

* chore: update ci

* fix(solana): paginate transaction details for large messages

* chore: update version and changelog

---------

Co-authored-by: Soralit <44085950+soralit@users.noreply.github.com>

76/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
parser or protocol pathmerge-commit duplicate discountsecond-pass: security-sensitive path
AI analysis · Low 47/100

This firmware update adds support for Solana's new V1 transaction format and changes how oversized or malformed transaction details are displayed. The code introduces a dedicated parser for V1 messages with strict size and structure checks, and it prevents malformed V1 messages from being silently treated as ordinary text messages. It also paginates long transaction detail screens so users can scroll through large transactions instead of the UI breaking or truncating.

AI review queuedBuild fix (#2273)by stone wang · 8568a657 · Aug 7, 2026 · 5 filesMessage 59 · ThinInformational 13Details
Commit message · stone wang

Build fix (#2273)

* chore(build): reset cached CMake options between builds

* chore(build): surface cbindgen generation failures

* cargo fmt

* fix: build

---------

Co-authored-by: Soralit <soralitria@gmail.com>

59/100 · ThinMessage clarity
✓ Subject identifies a change✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 13/100

This commit is a routine build-system and code-formatting fix. It resets cached CMake build options so each build starts from known defaults, makes cbindgen header-generation failures visible instead of silently ignored, runs Rust formatting, and adds a missing import for tests. There is no indication of a security vulnerability being fixed.

AI review queuedlimit file count (#2272)by stone wang · de6879c3 · Aug 7, 2026 · 6 filesMessage 36 · OpaqueLow 44Details
Commit message · stone wang

limit file count (#2272)

36/100 · OpaqueMessage clarity
✓ Subject identifies a change✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Low 44/100

This commit adds a hard cap on how many files the device will list from its SD card when loading multi-signature Bitcoin wallet data. It also tightens up null-pointer and length checks while scanning directories. The likely goal is to prevent a malicious or accidentally overstuffed SD card from crashing the wallet or causing memory corruption when it reads a huge directory listing.

AI review queuedMerge pull request #2268 from KeystoneHQ/regular-review-fixby Soralit · 1c70d3d4 · Aug 7, 2026 · 6 filesMessage 73 · AdequateLow 46Details
Commit message · Soralit

Merge pull request #2268 from KeystoneHQ/regular-review-fix

fix: mark legacy utxo transaction as deprecated and disable btc legac…

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathmerge-commit duplicate discountsecond-pass: security-sensitive path
AI analysis · Low 46/100

This commit tightens which old-style Bitcoin-like transactions the Keystone hardware wallet will accept. It now rejects raw protobuf Bitcoin (BTC) and Dogecoin (DOGE) legacy UTXO transactions, allowing only Bitcoin Cash (BCH), Dash (DASH), and Litecoin (LTC) to keep using that older path. Bitcoin must now go through the newer PSBT route. The change is framed as a deprecation/hardening fix rather than a response to a known exploit.

AI review queuedfix: mark legacy utxo transaction as deprecated and disable btc legacy transactionsby Soralit · 1fcd2346 · Aug 7, 2026 · 6 filesMessage 62 · AdequateModerate 61Details
Commit message · Soralit

fix: mark legacy utxo transaction as deprecated and disable btc legacy transactions

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Moderate 61/100

This commit disables the older, raw-protobuf signing path for Bitcoin and Dogecoin transactions in the Keystone 3 hardware wallet firmware. It keeps the legacy path active only for Bitcoin Cash (BCH), Dash (DASH), and Litecoin (LTC). The change is described as a deprecation and hardening measure, not as a fix for a specific reported vulnerability. The patch adds rejection checks at multiple entry points (parsing, checking, signing, and QR-code type detection) so that unsupported legacy UTXO transactions fail with a clear error message instead of being processed.

AI review queuedMerge pull request #2264 from KeystoneHQ/regular-review-fixby Soralit · 87c7e7e2 · Aug 7, 2026 · 23 filesMessage 58 · ThinModerate 63Details
Commit message · Soralit

Merge pull request #2264 from KeystoneHQ/regular-review-fix

fix: regular ai review fix

58/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
Why it was queued
signing or wallet pathparser or protocol pathmerge-commit duplicate discountsecond-pass: unusually broad changesecond-pass: security-sensitive path
AI analysis · Moderate 63/100

This firmware update is a routine 'regular review fix' that hardens how the Keystone 3 hardware wallet checks and displays several cryptocurrency transactions before signing. The most important security changes are: (1) the sign button is now disabled until transaction parsing succeeds, so a malformed transaction cannot be accidentally approved; (2) Arweave/AO data-item transactions are rejected during the pre-check if their tag metadata is malformed; (3) Avalanche transactions are fully re-parsed in the pre-check, so tampered fields such as a changed output asset ID are caught; (4) Bitcoin-like fee warnings now use network-specific thresholds, so normal Dogecoin/Litecoin fees no longer trigger misleading 'large fee' alerts; and (5) Cosmos no longer shows a duplicated 'Max Fee' line, and Solana Squads proposal memos are displayed on the correct instruction. Most other changes are UI layout and cleanup.

AI review queuedfix: regular ai review fixby soralit · edbeae79 · Aug 6, 2026 · 23 filesMessage 57 · ThinModerate 61Details
Commit message · soralit

fix: regular ai review fix

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
signing or wallet pathparser or protocol pathsecond-pass: unusually broad changesecond-pass: security-sensitive path
AI analysis · Moderate 61/100

This firmware update for the Keystone 3 hardware wallet fixes several security and safety issues found during an internal AI-assisted review. The most important changes are: (1) the signing slider is now disabled until a transaction is fully parsed, so a malformed transaction cannot be accidentally approved; (2) Arweave data-item transactions are checked for tampered tag counts before they reach the confirmation screen; (3) Avalanche transactions are fully re-parsed during the safety check so a modified transaction is rejected; (4) Bitcoin-like fee warnings now use network-specific thresholds, so Dogecoin/Litecoin users are not falsely warned or misled by Bitcoin defaults; and (5) Cosmos no longer shows a duplicated/confusing 'Max Fee' field, and Solana Squads multi-sig memos are attached to the correct instruction. Most other changes are UI clean-up.

AI review queuedreplace lvgl randby ww3512687 · f7d64fb8 · Aug 5, 2026 · 2 filesMessage 28 · OpaqueModerate 59Details
Commit message · ww3512687

replace lvgl rand

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Moderate 59/100

This commit swaps out the LVGL graphics library's pseudo-random number generator for the device's hardware true random number generator (TRNG) in two places: shuffling the on-screen numeric keypad and shuffling recovery-word lists. The old code used lv_rand, which is not designed for cryptographic security and may be predictable. Using a predictable shuffle could let an attacker who can see or guess the random sequence reduce the number of possible keypad layouts or word orders they must try, weakening protections for PIN entry or seed-phrase backup verification. The patch itself is a clear improvement, but it is small and we cannot verify from the diff alone whether the TRNG driver is correctly implemented or whether other sensitive code still uses lv_rand.

AI review queuedfix: address Solana review findingsby soralit · e1752174 · Aug 4, 2026 · 11 filesMessage 57 · ThinLow 49Details
Commit message · soralit

fix: address Solana review findings

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
parser or protocol pathsecond-pass: security-sensitive path
AI analysis · Low 49/100

This commit improves how Keystone 3's Solana app recognizes and displays certain transaction types. It adds support for the Solana Compute Budget program so those instructions are no longer labeled as 'Unknown,' and it adds parsing for Solana off-chain message signing so those messages are shown as human-readable text instead of being mistaken for raw transactions. The UI now shows unknown program addresses separately after the main transaction overview, and USB error messages can display more specific failure text. The commit title says it addresses 'Solana review findings,' but the commit message itself does not explicitly call these security fixes.

AI review queuedfix: regular AI code review and fixby soralit · e2c0ef31 · Jul 30, 2026 · 76 filesMessage 57 · ThinModerate 63Details
Commit message · soralit

fix: regular AI code review and fix

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
signing or wallet pathparser or protocol pathsecond-pass: unusually broad changesecond-pass: security-sensitive path
AI analysis · Moderate 63/100

This is a large, routine code-quality and hardening patch for the Keystone 3 hardware wallet firmware. It tightens how transactions are parsed and displayed for several cryptocurrencies (Arweave, Avalanche, Bitcoin, Cosmos, Ethereum, Solana). Key user-visible effects: duplicate or malformed transaction tags are now rejected, oversized Bitcoin fees trigger a warning, unknown Cosmos messages are shown as 'blind sign' with a digest instead of being silently dropped, and Ethereum nonces/values are handled with full precision. The commit message frames this as a regular AI-assisted code review and fix, not as a response to a disclosed security incident.

AI review queuedfix: guard Solana USB pubkey service for non-web3 buildsby John Boyd · 9d04150d · Jul 28, 2026 · 1 fileMessage 85 · StrongInformational 19Details
Commit message · John Boyd

fix: guard Solana USB pubkey service for non-web3 builds

CheckSolPathSupport is only compiled under WEB3_VERSION, but the USB
pubkey service introduced with the sol-cli feature calls it
unconditionally, so cypherpunk and btc-only production builds fail to
link. Compile the Solana path only for web3 firmware and answer the
request with the existing "Unsupported coin type" error elsewhere.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
parser or protocol pathsecond-pass: security-sensitive path
AI analysis · Informational 19/100

This commit fixes a firmware build problem, not a runtime security bug. The Solana USB public-key service was calling a function that only exists in the multi-coin 'web3' firmware variant, so the more limited 'cypherpunk' and 'bitcoin-only' firmware variants could not compile/link. The patch makes the Solana code compile only for the web3 variant and returns an 'Unsupported coin type' error for the other variants. It is a build-configuration fix with no direct exploit path.

AI review queuedoptimize sol derivation path allocationby ww3512687 · 9c3efd94 · Jul 28, 2026 · 1 fileMessage 45 · ThinLow 33Details
Commit message · ww3512687

optimize sol derivation path allocation

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 · Low 33/100

This commit refactors how a Solana cryptocurrency derivation path is stored while parsing a USB request. Previously, the code dynamically allocated a small heap buffer inside a helper function and returned it to the caller, which then had to free it. Now the caller provides a fixed-size stack buffer, and the helper just fills it. The change removes a potential memory leak and a use-after-free risk if the caller forgot to free the buffer, and it avoids relying on dynamic allocation for a small fixed-size string. There is no direct evidence in the commit of an exploitable vulnerability being fixed, but the change is a defensive hardening improvement.

AI review queuedsupport sol cliby ww3512687 · 77833f49 · Jul 27, 2026 · 16 filesMessage 28 · OpaqueLow 36Details
Commit message · ww3512687

support sol cli

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
signing or wallet pathparser or protocol pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Low 36/100

This commit adds Solana CLI support to the Keystone 3 hardware wallet firmware. It introduces a new USB command that lets a connected computer request public keys for specific Solana derivation paths, and it reworks how USB responses are sent so they happen asynchronously rather than blocking the user interface. Most changes are feature additions and defensive hardening (for example, checking for NULL pointers and ensuring password checks are complete before approving key-derivation requests). There is no explicit security bug fix or vendor security disclosure in the commit message or diff.

AI review queuedPreserve Zcash account firmware version (#37)by Adam · 20d7ea2d · Jul 22, 2026 · 3 filesMessage 68 · AdequateInformational 17Details
Commit message · Adam

Preserve Zcash account firmware version (#37)

* Preserve Zcash account firmware version

* Keep UR dependencies at 1.0.7

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 17/100

This commit is a small, non-security code change. It updates a Zcash wallet test to verify that the firmware version string is preserved when account data is encoded and decoded, and it switches two Rust library dependencies from the public crates.io registry to a specific Git revision from a third-party fork. There is no direct evidence in the commit that this fixes a vulnerability.

AI review queuedPreserve PCZT v1 response encodingby Adam Tucker · acf3611a · Jul 22, 2026 · 5 filesMessage 45 · ThinLow 28Details
Commit message · Adam Tucker

Preserve PCZT v1 response encoding

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 28/100

This commit changes how the Keystone hardware wallet handles Zcash PCZT (partially-created transaction) files. Previously, after checking and signing a transaction, the device always returned the result in the newer v2 format. Now it remembers whether the incoming file was in v1 or v2 format and returns the signed result in the same version. This is a compatibility fix for wallets that only understand PCZT v1, not a fix for a vulnerability that lets an attacker steal funds.

AI review queuedrefactor(zcash): use shielded pool display directlyby Adam Tucker · 9074e087 · Jul 21, 2026 · 4 filesMessage 62 · AdequateInformational 15Details
Commit message · Adam Tucker

refactor(zcash): use shielded pool display directly

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a minor code cleanup in the Zcash shielded-transaction handling code. It removes temporary variables named `pool_label` and instead uses the existing `pool` value directly when building error messages. There is no change to security logic, transaction validation, or cryptographic operations.

AI review queuedfix(zcash): allow transparent-only V6 PCZTsby Adam Tucker · ba4ecf28 · Jul 21, 2026 · 4 filesMessage 57 · ThinLow 37Details
Commit message · Adam Tucker

fix(zcash): allow transparent-only V6 PCZTs

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 37/100

This commit changes how Keystone's Zcash transaction handling treats version 6 (V6) PCZTs. Previously, all V6 Zcash transactions were rejected in the non-cypherpunk (transparent-only) code path. The patch now allows V6 transactions as long as they contain only transparent inputs and outputs, while still rejecting shielded or unknown transaction formats. This is a feature expansion to support transparent-only V6 Zcash transactions, not a fix for an active security vulnerability.

AI review queuedrefactor(zcash): simplify unsupported PCZT helpersby Adam Tucker · 0f0dc78a · Jul 21, 2026 · 3 filesMessage 62 · AdequateInformational 14Details
Commit message · Adam Tucker

refactor(zcash): simplify unsupported PCZT helpers

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 14/100

This is a simple code cleanup: three internal helper functions in the Zcash PCZT handling code are renamed to remove the word 'legacy' from their names. The actual behavior and security checks stay exactly the same. There is no functional change and no security fix or vulnerability introduced.

AI review queuedrefactor(zcash): display shielded pool namesby Adam Tucker · 83ac1e21 · Jul 21, 2026 · 4 filesMessage 57 · ThinInformational 15Details
Commit message · Adam Tucker

refactor(zcash): display shielded pool names

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a small code cleanup in the Zcash transaction handling code. It replaces a custom `label()` method on the `ShieldedPool` type with Rust's standard `Display` trait, so the pool name prints the same way in error messages. There is no security-relevant change: the strings shown to users remain identical ('Orchard' and 'Ironwood'), and no transaction validation logic is altered.

AI review queuedfix(zcash): size UFVK buffers for terminatorsby Adam Tucker · 5f158dd3 · Jul 20, 2026 · 6 filesMessage 57 · ThinModerate 59Details
Commit message · Adam Tucker

fix(zcash): size UFVK buffers for terminators

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Moderate 59/100

This commit fixes a buffer sizing bug in the Keystone hardware wallet's Zcash support. The code previously treated the maximum string length and the buffer size as the same number, leaving no guaranteed room for the null terminator at the end of the string. In several places it also copied data using the maximum length rather than the actual buffer size. The patch adds a dedicated buffer size constant that includes space for the terminator and uses it consistently. If left unfixed, this could lead to truncated or missing terminator bytes, which in a security device can cause crashes, incorrect key handling, or in worst-case scenarios memory corruption that an attacker might exploit.

AI review queuedadd 3.0.0 changelogby bianminyan · 15bf55fd · Jul 20, 2026 · 3 filesMessage 38 · OpaqueInformational 15Details
Commit message · bianminyan

add 3.0.0 changelog

38/100 · OpaqueMessage clarity
✓ Subject identifies a change✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100

This commit only adds a changelog entry and bumps the firmware version number from 2.5.0 to 3.0.0. It contains no actual code changes, bug fixes, or security patches. The changelog mentions vague 'security policy' and 'forgot passcode' improvements, but the commit itself does not implement them.

AI review queuedSet Zcash batch limit to 40by Adam Tucker · 7fd64609 · Jul 18, 2026 · 2 filesMessage 45 · ThinInformational 18Details
Commit message · Adam Tucker

Set Zcash batch limit to 40

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 18/100

This commit simply raises the maximum number of Zcash transactions that can be processed in one batch from 35 to 40. It updates a constant, the matching documentation, and a unit test. There is no indication of a security vulnerability being fixed.

AI review queuedRestore Zcash batch limit to 35by Adam Tucker · 480e0cd1 · Jul 18, 2026 · 2 filesMessage 45 · ThinLow 27Details
Commit message · Adam Tucker

Restore Zcash batch limit to 35

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 · Low 27/100

This commit lowers the maximum number of Zcash transactions that can be processed in one batch from 40 to 35. It is a small, defensive adjustment to keep memory usage within safe limits on the hardware wallet. There is no direct evidence in the commit that this fixes an active security bug or vulnerability; it appears to be a precautionary resource-limit change.

AI review queuedSet Zcash batch limit to 40by Adam · 51cae26e · Jul 18, 2026 · 2 filesMessage 45 · ThinInformational 18Details
Commit message · Adam

Set Zcash batch limit to 40

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 18/100

This commit simply raises the maximum number of Zcash transactions that can be processed in one batch from 35 to 40 on a specific firmware variant. It updates a constant, the matching documentation, and a unit test. There is no indication in the commit that this fixes a security vulnerability.

AI review queuedReduce Zcash batch limit to 35by Adam Tucker · 13662ea0 · Jul 18, 2026 · 2 filesMessage 45 · ThinLow 27Details
Commit message · Adam Tucker

Reduce Zcash batch limit to 35

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 · Low 27/100

This commit lowers the maximum number of Zcash transactions that can be processed in one batch from 50 to 35. It appears to be a defensive hardening change to reduce memory pressure or processing load on the hardware wallet during batch signing, rather than a fix for a known exploitable bug. There is no direct evidence in the commit or supplied references that this resolves a specific security vulnerability.