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.
41/100 average clarity
35Strong · 80–100
64Adequate · 60–79
201Thin · 40–59
232Opaque · 0–39
37security candidates with opaque commit messaging
This commit removes a weak, predictable random-number generator that was bundled as a backup inside the firmware's SLIP-39 code. Previously, if the device's proper hardware random source was accidentally left out of a build, the firmware c…
Removal of deterministic LCG PRNG (random32)Removal of weak-symbol random_buffer fallbackRemoval of unused random helper APIs
This commit fixes a bug in the Keystone 3 hardware wallet's Zcash shielded transaction signing. Previously, when a user reviewed and approved a transaction for one account, the device could accidentally authorize a spend from a different a…
Account-scoping enforcement added to shielded spend authorizationPrevents cross-account signing under same seedNew validation in PCZT check path before signing
This commit fixes a bug in the Keystone hardware wallet's Zcash signing code. When signing a batch of Zcash transactions that include 'dummy' placeholder spends (zero-value decoy actions used for privacy), the signer could get stuck or fai…
Zcash privacy-spend signing bypass for finalized dummy actionsBatch-transport redaction state reproduced in regression testPotential signing failure / denial-of-service for Zcash PCZT transactions with dummy spends
This commit is a simple rename of an internal function from `sign_pczt_to_pczt` to `sign_and_redact_pczt` in the Zcash Rust code. No behavior, logic, or security properties changed; it only makes the function name more descriptive. There i…
This is a large firmware commit for the Keystone 3 hardware wallet that restructures how the secure element (SE) chip is used. It introduces a generation-aware backend so the firmware can support two different SE configurations (gen-1, the…
Generation-aware SE backend with fail-closed NULL backend for UNPROVISIONED/INVALID chipsLegacy page-8 PIN-hash wipe gated to gen-1 only to avoid erasing gen-2 R_wrappedPer-account lifecycle status pages for atomic crash recovery of create/change-PIN/delete
This commit fixes a crash in the Keystone hardware wallet when signing certain advanced Zcash transactions. The previous code used a heavy upstream signing helper that needed too much memory, causing the device to reset during an Orchard-t…
Stack overflow / device reset in signing task due to excessive stack usage by upstream RoleSignerReplacement of heavy upstream signer with lean in-repo low_level_signer to fit device stack budgetAddition of consensus-critical NU6.3 v6 Orchard/Ironwood sighash domains in pczt_ext
This commit adds a new Zcash batch-signing feature for shielded transactions and fixes a UI bug where Zcash signing could freeze if the response QR code could not be generated. The changes introduce new Rust code to validate, parse, and si…
New batch signing path for Zcash shielded PCZTs with 35-message limitAtomic batch semantics: any invalid message aborts the whole batchPreflight check `ensure_pczt_has_signable_shielded_action` prevents silent no-signature results
This commit updates the user interface and internal checks for generating wallet seed phrases using dice rolls as a source of randomness. It enforces a minimum number of dice rolls depending on the desired seed strength: at least 50 rolls …
Enforces minimum entropy input length based on target mnemonic strengthAdds server-side/model-layer validation in addition to UI gatingPrevents generation of 256-bit seeds from insufficient dice-roll entropy
This commit removes support for the 'Leap' wallet from the Keystone 3 firmware. It deletes the Leap wallet icon and asset, removes Leap-related text strings from Chinese, Japanese, and Korean font files, and updates the Rust dependency ver…
This commit changes how the Keystone hardware wallet enables Zcash for SLIP 39 wallets. Previously, Zcash was completely disabled for all SLIP 39 wallets. Now it is allowed when the SLIP 39 shares are 33 words long (256-bit entropy), but s…
Relaxation of a security-motivated disablement based on entropy lengthNew entropy-length gate for Zcash supportPotential risk if entropy length check is bypassed or miscalculated
This commit adds support for the Core Wallet in the Keystone 3 firmware. It mainly expands the number of Avalanche X/P-chain derivation paths from one to ten, updates the Rust SDK dependency, and changes how signing requests extract deriva…
Change to cryptographic signing API (multiple paths / multiple signatures)Change to HD derivation path validation and selection logicChange to master-fingerprint / source-fingerprint verification
This commit adds support for the Core Wallet in the Keystone 3 firmware. It mainly expands the number of Avalanche (AVAX) X/P-chain account paths from one to ten, updates the Rust signing code to accept multiple derivation paths from the w…
Change from hardcoded derivation-path derivation to paths supplied by the signing requestAddition of multiple AVAX X/P-chain account indexes (0-9)Signature generation now iterates over multiple provided paths
This commit removes the special 'TON-only wallet' feature from the Keystone 3 firmware. It deletes code that let users create or import a TON-native 24-word seed phrase separate from the normal BIP39 wallet. After this change, TON is handl…
No security-relevant signals present in the diff or commit metadataFeature removal, not a vulnerability patchNo mention of CVE, security advisory, researcher credit, or exploit in commit message
This firmware update for the Keystone 3 hardware wallet is billed as a security improvement. The most important change is a complete rewrite of the bootloader/firmware update path: it now uses SHA-256 and a signed/length-prefixed 'bootupda…
Bootloader/firmware update verification upgraded from MD5 to SHA-256 with length-prefixed magic headerAUTO_REBOOT_AFTER_COPY_FILE path removed from USB MSC SCSI handler, eliminating host-triggered reboot on file copyUSB endpoint address validation added across DCD, USBD core, and class drivers to prevent out-of-bounds EP array access
This commit is a large firmware update for the Keystone 3 hardware wallet, primarily adding a bootloader update mechanism and hardening the USB stack. It introduces a way to overwrite the device's bootloader from a specially formatted regi…
New bootloader self-update path from application flash with magic-number header, SHA-256 hash, and CRC32 verificationFlash encryption enabled for production builds using OTP-derived AES-CBC key/IVUSB control endpoint hardening: request length validation, descriptor bounds checks, endpoint address validation, stall-on-invalid requests
This is a one-line build-configuration fix for the Keystone hardware wallet's Zcash signing code. Previously, transparent Zcash transaction signing was only enabled when the 'multi_coins' feature was active. The change also enables it when…
No memory-safety issues visible in the diffNo cryptographic algorithm changesNo input validation changes
This is a one-line build-configuration fix for the Keystone hardware wallet's Zcash transparent transaction signing. Previously, the code that signs the transparent (non-shielded) part of a Zcash PCZT transaction was only compiled when the…
Functional bug in cryptographic signing pathBuild-feature conditional compilation errorCould produce invalid/incomplete transaction signatures
This commit adds support for a new wallet partner called Gero Wallet in the Keystone 3 firmware. It is a routine feature addition: a new icon, a new entry in wallet lists, a tutorial link, and recognition of the wallet's origin name when h…
This commit fixes a product limitation: Keystone 3 hardware wallets using a SLIP39-style recovery phrase could not connect to the Keystone mobile app for Zcash. The patch removes Zcash from the list of coins shared when a SLIP39 wallet is …
Functional/compatibility fix for SLIP39 Zcash supportInput validation added for zcash seed fingerprint length (must be 0 or 32)No evidence of buffer overflow, use-after-free, or cryptographic weakness in the patch
This commit fixes a build-configuration bug that could prevent creating or saving public key information when using a SLIP39 passphrase. The old code accidentally skipped the normal key-derivation path for certain crypto types in non-Bitco…
Expand any commit for its author, full message, clarity score, changed files, triage signals, analysis, and source link.
Lower-priorityMerge pull request #2260 from KeystoneHQ/replace-lvgl-randby Soralit · 230abd77 · Aug 5, 2026 · 2 filesMessage 58 · ThinTriage 0Details
Commit message · Soralit
Merge pull request #2260 from KeystoneHQ/replace-lvgl-rand
replace lvgl rand
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
merge-commit duplicate discount
AI review queuedreplace lvgl randby ww3512687 · f7d64fb8 · Aug 5, 2026 · 2 filesMessage 28 · OpaqueTriage 0Details
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
Security candidatefix(simulator): return password error on PIN mismatch in SimulatorLoadAccountSecretby soralit · 6bec6930 · Aug 4, 2026 · 1 fileMessage 85 · StrongTriage 18Details
Commit message · soralit
fix(simulator): return password error on PIN mismatch in SimulatorLoadAccountSecret
SimulatorLoadAccountSecret returned SUCCESS even when the stored password did not match. This made the duplicate-PIN check (CheckPasswordExisted -> VerifyAccountPassword) always treat any new PIN as a duplicate of an existing account, so setting a PIN for the second account and onwards failed with 'Duplicate PIN code detected'.
Return ERR_KEYSTORE_PASSWORD_ERR on mismatch, matching the real-device behavior (LoadAccountSecretFromSE returns ERR_KEYSTORE_AUTH on HMAC failure, which VerifyAccountPassword maps to ERR_KEYSTORE_PASSWORD_ERR).
85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Remove trezor-crypto's unused LCG and weak fallback so device builds must link the platform random_buffer implementation. Keep a simulator-only standard library stub.
Co-authored-by: Nikolaus Heger <nheger@gmail.com>
80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
entropy or randomnesscryptography-sensitive pathseed or entropy path
AI analysis · Moderate 64/100
This commit removes a weak, predictable random-number generator that was bundled as a backup inside the firmware's SLIP-39 code. Previously, if the device's proper hardware random source was accidentally left out of a build, the firmware could silently fall back to the weak generator, which would make wallet backup seeds predictable. Now the weak generator is gone for hardware builds, so a missing proper random source causes the build to fail instead of silently producing insecure seeds. The simulator still keeps a simple software-only stub for testing.
✓ Subject identifies a change✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
boot or update path
AI review queuedfix: regular AI code review and fixby soralit · e2c0ef31 · Jul 30, 2026 · 76 filesMessage 57 · ThinTriage 19Details
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 review queuedfix: guard Solana USB pubkey service for non-web3 buildsby John Boyd · 9d04150d · Jul 28, 2026 · 1 fileMessage 85 · StrongTriage 7Details
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
Lower-priorityfeat(zcash): tag outputs to the wallet's own address as Mineby John Boyd · 9eb7f4c3 · Jul 28, 2026 · 5 filesMessage 85 · StrongTriage 0Details
Commit message · John Boyd
feat(zcash): tag outputs to the wallet's own address as Mine
The review screen previously computed shielded output ownership via the IVK scope check and then discarded the external-scope result, so an output paying the wallet's own external Orchard or Ironwood receiver rendered like a payment to a foreign address. Propagate the ownership flag through ParsedTo and DisplayTo and render a "Mine" tag on output rows, with the existing "Change" tag taking precedence for internal-scope outputs.
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
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body