KS
← All projectsKeystone

Keystone 3 firmware

Open-source device firmware for Keystone 3 hardware wallets.

BitcoinHardware walletsNormal
Repository coverage

536 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.

111security candidates287second-pass queue418AI analyses
119commits · 30 days
159commits · 60 days
276commits · 180 days
535commits · 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.

41/100 average clarity
35Strong · 80–100
64Adequate · 60–79
204Thin · 40–59
233Opaque · 0–39
38security 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.
Adam Tucker931156163
aaron30413148
ww351268717652165026
soralit1153477048
willwang15214025
John Boyd624088
Soralit321058
Qkin-Keystone26123036
qkin12111050
Greg Pfeil412071
Daira-Emma Hopwood211085
bianminyan45042032
Analysis record

Published AI watches

Last scanned 50 minutes ago

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
Moderate 59 AI analysisMessage 28 · Opaque
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

replace lvgl rand

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…

Replacement of non-cryptographic PRNG with hardware TRNG in security-sensitive shuffle routinesFisher-Yates shuffle of on-screen PIN keypad now uses TrngGetFisher-Yates shuffle of mnemonic word array now uses TrngGet
f7d64fb8by ww3512687+8−32 files
No security note in commit
Informational 19 AI analysisMessage 85 · Strong
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

fix(simulator): return password error on PIN mismatch in SimulatorLoadAccountSecret

This commit fixes a bug in the firmware's simulator (a software stand-in used for testing, not the real hardware wallet). When checking a stored account password/PIN, the simulator was accidentally returning 'success' even when the passwor…

Incorrect success return on authentication failure in simulator-only codeMismatch between simulator and real-device authentication error semanticsFunctional regression in multi-account PIN creation in simulator builds
6bec6930by soralit+4−11 file
No security note in commit
Moderate 62 AI analysisMessage 57 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

fix: improve Solana message handling

This commit hardens how Keystone 3 handles Solana signing requests. Previously, the device partly trusted an external 'sign type' flag from the wallet app to decide whether a QR code contained a transaction or a plain message. The patch no…

Replaces trust in external sign-type metadata with byte-level payload classificationRejects malformed transactions that contain a valid transaction prefix followed by hidden trailing dataPrevents a transaction from being displayed and signed as a plain message
756df0e7by soralit+151−387 files
No security note in commit
Low 49 AI analysisMessage 57 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

fix: address Solana review findings

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 Sol…

Previously unknown Compute Budget instructions are now parsed and labeled, reducing the chance a user approves a transaction they cannot understand.Off-chain signing messages are parsed with format and length validation, so wallet-connect-style sign-in messages are shown as text rather than misinterpreted as transactions.Unknown program accounts are surfaced explicitly in the UI instead of being hidden inside a generic 'Unknown' instruction list.
e1752174by soralit+343−5711 files
No security note in commit
Informational 12 AI analysisMessage 47 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

chore: remove implementation plan

This commit only deletes a planning document from the repository's docs folder. No firmware code, build scripts, or cryptographic logic were changed. The deleted file described a previously completed security-hardening task about removing …

Deleted document references a prior security-hardening task (issue #2255 / PRNG fallback removal)No source-code or build-system changes in the diff
4620fe94by ww3512687+0−1041 file
No security note in commit
Moderate 64 AI analysisMessage 80 · Strong
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

fix: remove insecure PRNG fallback

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
17c78e30by ww3512687+108−693 files
Vendor flagged security relevance
Informational 19 AI analysisMessage 57 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

feat: rename matic to pol

This commit simply renames the cryptocurrency token symbol from MATIC to POL in two places in the user-interface code for the Keystone 3 hardware wallet. Polygon officially rebranded its native token from MATIC to POL, so this is a routine…

88132d72by soralit+2−21 file
No security note in commit
Informational 10 AI analysisMessage 40 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

chore: update ci

This commit is described as a routine CI (continuous integration) update with only one line changed in a release-related file. No code changes affecting wallet security, cryptography, or user funds are visible, and no security relevance is…

39cfff13by soralit+1−11 file
No security note in commit
Moderate 63 AI analysisMessage 57 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

fix: regular AI code review and fix

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, Solan…

Arweave: duplicate required tags now rejected, malformed/trailing Avro data now rejectedArweave: DataItem tag count mismatch now rejectedAvalanche: trailing transaction bytes now rejected via parsed_size checks
e2c0ef31by soralit+3998−142676 files
No security note in commit
Informational 19 AI analysisMessage 85 · Strong
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

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

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…

Build/link-time failure fix for conditional feature compilationExplicit error response added for unsupported coin type on non-web3 buildsNo input validation, memory safety, or cryptographic changes observed
9d04150dby John Boyd+10−01 file
No security note in commit
Informational 20 AI analysisMessage 85 · Strong
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

feat(zcash): tag outputs to the wallet's own address as Mine

This commit fixes a UI labeling bug in the Keystone hardware wallet's Zcash transaction review screen. Previously, when a user sent Zcash to one of their own shielded addresses (an 'external' address, not a change address), the device disp…

UI mislabeling of self-owned Zcash shielded outputsNew `is_mine` ownership flag propagated across Rust/C FFI boundaryNo change to signing logic, key handling, or transaction validation
9eb7f4c3by John Boyd+57−45 files
No security note in commit
Low 33 AI analysisMessage 45 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

optimize sol derivation path allocation

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 …

Eliminates heap allocation for a fixed-size derivation-path bufferRemoves manual free responsibility from caller, reducing memory leak / use-after-free riskSwitches helper return type from pointer to bool to enforce explicit success/failure handling
9c3efd94by ww3512687+12−201 file
No security note in commit
Moderate 57 AI analysisMessage 57 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

refactor: remove unused QR code protocols

This commit removes old, custom QR-code transaction formats for Bitcoin-family coins, Ethereum, and XRP, and replaces them with standardized formats. It also adds explicit rejections when the device receives a transaction through the gener…

Removal of custom protobuf-based QR transaction paths reduces attack surfaceExplicit rejection of ur:bytes for Bitcoin-family and Ethereum transactionsLegacy handlers used unwrap() and raw protobuf deserialization on untrusted QR input
28dd305dby soralit+58−5067 files
No security note in commit
Informational 15 AI analysisMessage 47 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

chore: upgrade rust version

This commit upgrades the Rust compiler toolchain from one nightly version to a newer one and adjusts code to keep the project building and tests passing. It does not fix a known security bug or change how user funds are protected. Most of …

82a48133by soralit+511−1321 files
No security note in commit
Low 36 AI analysisMessage 28 · Opaque
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

support sol cli

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 s…

New USB command exposes public-key export for a specific coin type and derivation pathAdded NULL/empty checks before returning generated UR data and before using cached passwordMoved several UR result sends from synchronous to asynchronous (task-queue based) dispatch
77833f49by ww3512687+282−2016 files
No security note in commit
Informational 15 AI analysisMessage 40 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

chore: update change log

This commit only edits the project's changelog text. It rewrites the release notes for version 3.0.2, removing detailed bug-fix descriptions and replacing them with a shorter note about Zcash Ironwood support. No source code, build scripts…

c224a7f5by soralit+12−232 files
No security note in commit
Informational 15 AI analysisMessage 40 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

chore: bump version

This commit only changes two version numbers in a header file: the build number is increased from 1 to 2, and the beta flag is turned off (set to 0). There is no code change, no bug fix, and no security-related content in the diff or commi…

62a5d952by soralit+2−21 file
No security note in commit
Low 37 AI analysisMessage 45 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Fix Zcash wallet preparation on unlock

This commit fixes a bug in a helper function that checks whether a text string is a valid hexadecimal value of the expected length. The changelog frames the user-visible fix as 'preventing Zcash public information from being regenerated on…

Input validation hardening in a shared utility functionChangelog describes a Zcash wallet preparation/unlock behavior fixPotential off-by-one length check corrected
dd034199by Adam Tucker+8−44 files
No security note in commit
Informational 3 AI analysisMessage 45 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Use released UR crates 1.0.8

This commit simply switches two software building blocks (called 'crates') from a development Git snapshot to a published release version (1.0.8) on the official Rust package registry. The change itself does not add, remove, or modify any …

fa0add39by Adam Tucker+8−102 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.

Security candidateClear the passphrase status when returningby ww3512687 · b6a0fb37 · Oct 13, 2025 · 8 filesMessage 45 · ThinLow 47Details
Commit message · ww3512687

Clear the passphrase status when returning

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
access controlauthentication path
AI analysis · Low 47/100

This commit adds code that clears the optional passphrase text from the screen and resets its visibility to hidden (password mode) whenever the user navigates back from passphrase entry during wallet creation, import, or settings. It also refactors how the 'show/hide' eye icon is controlled. The change looks like a cleanup fix to prevent a sensitive passphrase from lingering on screen or staying visible after a user leaves the page, which could reduce the risk of shoulder-surfing or accidental disclosure.

Security candidateClear the passphrase quick access when returningby ww3512687 · 311bc553 · Oct 13, 2025 · 1 fileMessage 45 · ThinLow 46Details
Commit message · ww3512687

Clear the passphrase quick access when returning

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
access controlauthentication path
AI analysis · Low 46/100

This commit adds one line that turns off a 'quick access' toggle for the passphrase feature whenever the passphrase text is cleared. Without this fix, the toggle could stay enabled unexpectedly, potentially causing the device to remember or expose passphrase-related settings in a state the user did not intend. The change is defensive and improves safety, but the diff alone does not prove an exploitable vulnerability exists.

AI review queuedadd 2.2.16 changelogby bianminyan · 11e62d9c · Oct 13, 2025 · 2 filesMessage 38 · OpaqueInformational 15Details
Commit message · bianminyan

add 2.2.16 changelog

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

This commit only adds release notes for firmware version 2.2.16. It does not change any executable code, configuration, or security logic. The changelog describes two new user-facing features—an optional PIN shuffle toggle and the ability to set up a passphrase wallet during initial wallet creation or import—but these are product announcements, not a security patch or vulnerability fix.

AI review queuedmodify changelogby bianminyan · f5b5fbaf · Oct 13, 2025 · 1 fileMessage 18 · OpaqueInformational 15Details
Commit message · bianminyan

modify changelog

18/100 · OpaqueMessage clarity
✓ Subject identifies a change! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
documentation-only discountsecond-pass: opaque commit message
AI analysis · Informational 15/100

This commit only fixes a formatting issue in the Chinese changelog by replacing a stray backslash with a blank line. No code, firmware logic, or security behavior was changed.

AI review queuedUpdate versionby bianminyan · bce797b6 · Oct 13, 2025 · 1 fileMessage 18 · OpaqueInformational 15Details
Commit message · bianminyan

Update version

18/100 · OpaqueMessage clarity
✓ Subject identifies a change! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100

This commit only changes a single number in a version header file, bumping the build version from 14 to 16. There is no code change that affects security, functionality, or behavior of the firmware.

Security candidatefix: run fmt and rust fixby soralit · cedba8dd · Oct 10, 2025 · 133 filesMessage 57 · ThinLow 34Details
Commit message · soralit

fix: run fmt and rust 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 pathauthentication pathparser or protocol path
AI analysis · Low 34/100

This is a large code-cleanup commit titled 'fix: run fmt and rust fix'. It applies Rust formatting, clippy lint fixes, and removes unstable nightly feature flags across many Rust files in the Keystone 3 firmware. The changes are mostly stylistic or idiomatic (e.g., replacing manual loops with while-let, using OsRng instead of deterministic seeds for Monero bulletproofs/CLSAG signatures, changing pointer-safety annotations to unsafe, and removing unused imports). There is no explicit vendor statement that this fixes a security vulnerability, and the diff does not show a clear, exploitable bug fix. However, the Monero RNG change is a meaningful functional change that could affect cryptographic security if the prior deterministic seeding was flawed, and the broad unsafe FFI annotation changes could hide or expose memory-safety issues. Overall the commit appears to be a routine refactor/tooling fix rather than a targeted security patch.

AI review queuedfix warningby ww3512687 · 18858973 · Oct 10, 2025 · 10 filesMessage 0 · OpaqueInformational 12Details
Commit message · ww3512687

fix warning

0/100 · OpaqueMessage clarity
! Very short subject! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 12/100

This commit removes unused variables, unused function declarations, and unused local arrays across several firmware source files, and adds a couple of missing header includes. It also changes a few function signatures from `char *` to `const char *` for string parameters that are not modified. The stated purpose is simply to 'fix warning' (compiler warnings). None of these changes alter program logic, security boundaries, or cryptographic handling.

AI review queuedfix ui bugsby ww3512687 · d1a016af · Oct 9, 2025 · 3 filesMessage 0 · OpaqueInformational 15Details
Commit message · ww3512687

fix ui bugs

0/100 · OpaqueMessage clarity
! Very short subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100

This commit fixes a user-interface label bug. When a user has a TON (The Open Network) wallet, the device now shows the correct message explaining that TON cannot be combined with Bitcoin or Ethereum-style accounts because the seed phrase is incompatible. It only changes on-screen text and its translations; no security-sensitive code is modified.

AI review queuedupdate dice iconby ww3512687 · 57acfaa0 · Oct 9, 2025 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · ww3512687

update dice icon

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! 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 simply swaps one icon image for another in the wallet creation screen. It changes the picture shown next to the 'change entropy' menu option from a generic connection icon to a dice icon. There is no security-relevant change.

Security candidatesupport passphrase after setupby ww3512687 · 0d4f2a07 · Oct 9, 2025 · 35 filesMessage 35 · OpaqueLow 33Details
Commit message · ww3512687

support passphrase after setup

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
access controlcryptography-sensitive pathsigning or wallet pathauthentication path
AI analysis · Low 33/100

This commit adds the ability to set a BIP-39 passphrase during wallet creation and import, not just afterward in settings. Most of the change is UI flow wiring, but it also fixes a small bug in the SLIP-39 salt construction and adds a length check for passphrases. There is no clear security vulnerability introduced by the patch itself; the main risk is that passphrase handling is complex and any mistake could lock users out of funds or, in edge cases, weaken key derivation.

AI review queuedadd mfp checkby 0xApprentice · 8726a2bd · Sep 28, 2025 · 4 filesMessage 28 · OpaqueModerate 57Details
Commit message · 0xApprentice

add mfp check

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

This commit removes a line that made a Bitcoin PSBT (Partially Signed Bitcoin Transaction) safety check always return success before doing any real verification. The title says 'add mfp check' (master fingerprint check), but the actual code change mostly re-enables an existing check that had been short-circuited. A master fingerprint check helps ensure the transaction was built for this specific hardware wallet, reducing the risk of signing a transaction meant for someone else's wallet. The commit also contains unrelated build and simulator tweaks.

AI review queuedrun font scriptby ww3512687 · 4e2c80d1 · Sep 26, 2025 · 4 filesMessage 28 · OpaqueInformational 15Details
Commit message · ww3512687

run font script

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 is a routine localization and font update. It adds one Chinese character (盘) to the Chinese font file, removes three Chinese characters from the Russian font symbol list, and updates translations for the 'Randomized PIN Pad' setting across multiple languages. There is no code behavior change, no security fix, and no vulnerability introduced.

Security candidatesupport random pin pad switchby ww3512687 · 4a7ed763 · Sep 24, 2025 · 17 filesMessage 50 · ThinInformational 20Details
Commit message · ww3512687

support random pin pad switch

50/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Names security-relevant behavior explicitly! No meaningful explanatory body
Why it was queued
access control
AI analysis · Informational 20/100

This commit adds a user-facing option to scramble the numeric PIN keypad layout on the Keystone 3 hardware wallet. When enabled, the digits appear in a random order each time, making it harder for someone watching or filming the screen to guess the PIN from finger positions. It is a security-hardening feature, not a fix for an active vulnerability, and it is off by default.

AI review queuedUpdate version for testby bianminyan · d3f5365f · Sep 23, 2025 · 1 fileMessage 38 · OpaqueInformational 15Details
Commit message · bianminyan

Update version for test

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 one number in a version header file, bumping the build version from 10 to 14. It does not modify any actual code, features, or security behavior. There is no security issue here.

Security candidateEnhance multi-signature address functionality by adding support for sorting public keys and creating multi-sig addresses for Dogecoin. Update DOGEAddressEncoding to include P2SH prefix and implement corresponding formatting. Modify address creation methods to accommodate new features.by ww3512687 · 379234b8 · Sep 23, 2025 · 4 filesMessage 55 · ThinLow 26Details
Commit message · ww3512687

Enhance multi-signature address functionality by adding support for sorting public keys and creating multi-sig addresses for Dogecoin. Update DOGEAddressEncoding to include P2SH prefix and implement corresponding formatting. Modify address creation methods to accommodate new features.

55/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Names security-relevant behavior explicitly! No meaningful explanatory body
Why it was queued
signing boundary
AI analysis · Low 26/100

This commit adds Dogecoin support for multi-signature wallet addresses in a hardware wallet firmware. It lets the device create Dogecoin multi-sig addresses and sort public keys before building the address. There is also a trivial whitespace change in a UI file. The changes look like normal feature work, but adding new address handling always carries a small risk of address-generation mistakes that could make funds hard or impossible to spend.

AI review queuedupdate cargo.tomlby ww3512687 · e560760e · Sep 22, 2025 · 2 filesMessage 28 · OpaqueInformational 15Details
Commit message · ww3512687

update cargo.toml

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 only changes how two internal Rust libraries are sourced in the project's build configuration. It switches from using local file paths on a developer's Windows machine (C:/3.git/...) to pulling the same libraries from a specific Git branch in the vendor's public repository. There is no code behavior change visible in this commit, and nothing in the commit message or diff indicates a security fix or vulnerability.

AI review queuedfix bugsby ww3512687 · b24dac9d · Sep 22, 2025 · 2 filesMessage 0 · OpaqueLow 45Details
Commit message · ww3512687

fix bugs

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

This commit fixes two bugs in the Bitcoin PSBT (Partially Signed Bitcoin Transaction) handling code of a hardware wallet firmware. One fix corrects the order of arguments passed between C and Rust code so they match the expected function signature. The other fix moves the array-size assignment to happen before the array is populated, ensuring all nine public keys are properly registered instead of only the first four. These are likely functional bugs that could cause transaction parsing or signing to fail or behave incorrectly, but the diff alone does not prove a direct theft-of-funds vulnerability.

Security candidatesupport psbtby ww3512687 · f3dbd61e · Sep 19, 2025 · 13 filesMessage 18 · OpaqueLow 46Details
Commit message · ww3512687

support psbt

18/100 · OpaqueMessage clarity
✓ Subject identifies a change! Too few words to establish purpose! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
signing boundarysigning or wallet path
AI analysis · Low 46/100

This commit adds support for signing extended PSBTs for several UTXO-based coins (Litecoin, Dogecoin, Dash, Bitcoin Cash) in the Keystone 3 hardware wallet firmware. It also contains several changes that look like temporary debug or development shortcuts rather than production-hardened code: a hardcoded return value that hides the real battery percentage, disabling a boot-version mismatch warning, sending real UART output in production builds, and pointing Rust dependencies to a local path on a developer's Windows machine. These shortcuts reduce the device's defensive posture but are not, by themselves, a remote exploit.

AI review queuedmodify changelogby bianminyan · 1bf44d9f · Sep 18, 2025 · 2 filesMessage 18 · OpaqueInformational 15Details
Commit message · bianminyan

modify changelog

18/100 · OpaqueMessage clarity
✓ Subject identifies a change! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
documentation-only discountsecond-pass: opaque commit message
AI analysis · Informational 15/100

This commit only edits wording and spacing in two changelog files. No code, configuration, or security behavior is changed. It is a documentation-only formatting cleanup.

AI review queuedadd 2.2.14 changelogby bianminyan · 27c4dc89 · Sep 18, 2025 · 2 filesMessage 38 · OpaqueInformational 15Details
Commit message · bianminyan

add 2.2.14 changelog

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

This commit only adds a new section to the English and Chinese changelogs for firmware version 2.2.14. It describes new features (BSC transfers/swaps, randomized PIN input, IOTA Wallet support) and one bug fix (certain ADA transaction signing causing device restarts). No source code is changed, so the commit itself does not introduce, fix, or alter any security behavior.

AI review queuedupdate wallet iconby ww3512687 · 9b5f0900 · Sep 17, 2025 · 5 filesMessage 28 · OpaqueInformational 15Details
Commit message · ww3512687

update wallet icon

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! 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 simply swaps the Petra wallet icon graphics for new versions. It changes two PNG image files and their corresponding generated C source files, plus updates a hash file used to track those assets. There is no code logic change, no security fix, and no indication this addresses a vulnerability.

AI review queuedUpdate versionby bianminyan · 2afa3902 · Sep 17, 2025 · 1 fileMessage 18 · OpaqueInformational 15Details
Commit message · bianminyan

Update version

18/100 · OpaqueMessage clarity
✓ Subject identifies a change! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100

This commit only increments a software build number from 13 to 14 in a version header file. There are no code changes, no bug fixes, and no security-related modifications visible in the diff.

AI review queuediota wallet ui bugsby ww3512687 · 24d520b6 · Sep 16, 2025 · 3 filesMessage 28 · OpaqueInformational 15Details
Commit message · ww3512687

iota wallet ui bugs

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! 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 fixes minor user-interface issues for the IOTA wallet in the Keystone 3 hardware firmware. It renames the displayed label from 'IOTA' to 'IOTA Wallet', adds a tutorial entry with a help link, and moves the IOTA wallet entry to a different position in the wallet list. There is no security-relevant change visible in the code.

Lower-priorityfix: memory issueby soralit · 09e73d60 · Sep 16, 2025 · 1 fileMessage 40 · ThinTriage 0Details
Commit message · soralit

fix: memory issue

40/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope! No meaningful explanatory body
Lower-priorityfix: chain coin display errorby soralit · d908e40f · Sep 15, 2025 · 1 fileMessage 57 · ThinTriage 0Details
Commit message · soralit

fix: chain coin display error

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body