KX
← All projectsKrux

Krux

Open-source signing firmware for Kendryte K210 devices.

BitcoinHardware walletsNormal
Repository coverage

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

58security candidates41second-pass queue216AI analyses
5commits · 30 days
41commits · 60 days
97commits · 180 days
200commits · 365 days
Backfill bands
Aug 5 → Feb 6116 seen6 candidatesComplete
Feb 6 → Jun 639 seen3 candidatesComplete
Jun 6 → Jul 622 seen1 candidatesComplete
Jul 6 → Aug 538 seen5 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.

65/100 average clarity
60Strong · 80–100
66Adequate · 60–79
81Thin · 40–59
16Opaque · 0–39
6security 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.
Odudex291429272
odudex902989159
Tads361036063
qlrd18216082
kdmukai424066
tadeubas414038
kkdao12012083
Jean Do1006072
Naman015505060
bitcoisas505066
Naman Gupta202079
SatsCzar202062
Analysis record

Published AI watches

Last scanned 31 minutes ago

Moderate 66 AI analysisMessage 45 · Thin
KX KruxKrux BitcoinHardware wallets

Merge branch 'release-26.08.0'

This is a routine release merge for Krux firmware (version 26.08.0). It includes several genuine security fixes: a heap buffer overflow in camera-based entropy generation for a discontinued device, stricter fee calculation when signing Bit…

Heap buffer overflow fix in camera entropy module (discontinued Maix Bit only)PSBT fee calculation stricter checks and unverified-input-amount warningStored mnemonic file corruption now preserved instead of overwritten
be5eda28by odudex+4335−3028123 files
Vendor flagged security relevance
Informational 15 AI analysisMessage 40 · Thin
KX KruxKrux BitcoinHardware wallets

docs: update CHANGELOG

This commit only updates three date lines in the CHANGELOG.md file, changing '2025' to '2026' for three release entries. It does not modify any source code, build scripts, or documentation with security implications. The change is purely c…

ec058d86by odudex+3−31 file
No security note in commit
Moderate 66 AI analysisMessage 85 · Strong
KX KruxKrux BitcoinHardware wallets

fix: bind BBQr parts to the first part of the stream

This commit fixes Krux's QR code scanner so that when it reads a series of animated BBQr codes, every later frame must match the encoding and file type announced by the first frame, must agree on the total number of frames, and cannot over…

Input validation added for multi-part BBQr streamsMemory exhaustion mitigation via accumulated payload capAnti-splicing: parts must agree with first part's encoding and file type
0b3e01b7by odudex+86−13 files
No security note in commit
Informational 15 AI analysisMessage 40 · Thin
KX KruxKrux BitcoinHardware wallets

docs: update CHANGELOG

This commit only updates the project's CHANGELOG.md file. It adds text describing several bug fixes and improvements that were apparently made in prior code changes, but no actual code is changed in this commit. By itself, this documentati…

4c05cefbby odudex+9−11 file
No security note in commit
Informational 0 AI analysisMessage 40 · Thin
KX KruxKrux BitcoinHardware wallets

chore(Maixpy): bump cUR

This commit appears to be a routine version bump of a component called 'cUR' inside the MaixPy firmware build. No actual code changes are visible in the provided diff, and the commit message gives no indication of a security fix or vulnera…

74d6ed40by odudex+1−11 file
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
KX KruxKrux BitcoinHardware wallets

chore: bump version to 26.08.0

This commit is a routine version bump from 26.04.0 to 26.08.0. It only updates version strings in documentation, build files, and source metadata. No code behavior changes. The changelog text mentions a previously fixed heap buffer overflo…

Changelog references a prior heap buffer overflow in Shannon entropy module (camera frame copy into fixed 320x240 RGB565 buffer)No actual code or security fix present in this commit
dea991dfby odudex+5−55 files
Vendor flagged security relevance
Informational 2 AI analysisMessage 57 · Thin
KX KruxKrux BitcoinHardware wallets

chore: bump MaixPy with updated glyphs

This commit appears to update a submodule or dependency called MaixPy to a newer version that includes updated visual glyphs (small icons/symbols). The title and message describe it as a routine maintenance chore, not a security fix. No ac…

a9329228by odudex+1−11 file
No security note in commit
Informational 15 AI analysisMessage 85 · Strong
KX KruxKrux BitcoinHardware wallets

fix: register embed_fire in the bdftokff device list

This commit fixes a build-time font-generation script so that a newly supported device ('embed_fire') is recognized. Before the fix, the script printed an error but still produced the same font files. There is no security issue.

f15308e4by odudex+1−01 file
No security note in commit
Moderate 63 AI analysisMessage 57 · Thin
KX KruxKrux BitcoinHardware wallets

docs: add PSBT input amount fixes to CHANGELOG

This commit only updates the project's CHANGELOG.md to document earlier fixes related to PSBT (Partially Signed Bitcoin Transaction) fee and amount handling. It does not contain any code changes itself. The changelog entries describe secur…

Changelog documents prior PSBT fee/amount validation fixesMentions insufficient coordinator data as a security concernNo actual code or test changes in this commit
48920c31by odudex+4−01 file
Vendor flagged security relevance
High 78 AI analysisMessage 95 · Strong
KX KruxKrux BitcoinHardware wallets

fix: verify PSBT input amounts before showing the fee

This commit fixes a security flaw in Krux, a Bitcoin signing device. Before the fix, an attacker could trick the device into showing a low transaction fee on screen while actually signing a much higher fee. The fix makes the device verify …

Fixes fee-display/sighash amount mismatchAdds prevout txid hash verification for non_witness_utxoMandates non_witness_utxo for legacy inputs
fc808059by odudex+353−122 files
Vendor flagged security relevance
Moderate 66 AI analysisMessage 85 · Strong
KX KruxKrux BitcoinHardware wallets

fix: reject a PSBT whose outputs exceed its inputs

This commit fixes a bug in Krux, a Bitcoin signing device, where a malformed transaction whose outputs spend more than its inputs could be loaded and shown to the user. Normally such a transaction is impossible on the Bitcoin network, but …

Input validation gap in PSBT parsingUI rendering bug masking invalid transaction economicsPotential social-engineering / user-confusion attack
d6813d88by odudex+52−02 files
Vendor flagged security relevance
Informational 15 AI analysisMessage 50 · Thin
KX KruxKrux BitcoinHardware wallets

i18n: translate the unverified input amounts warning

This commit only adds translations for two existing warning messages in the Krux Bitcoin hardware wallet software. It does not change any code logic, security behavior, or fix any vulnerability. The messages warn users that displayed fees …

bdaed1a1by odudex+46−023 files
No security note in commit
Moderate 62 AI analysisMessage 90 · Strong
KX KruxKrux BitcoinHardware wallets

feat: warn when PSBT input amounts cannot be verified

This commit adds a warning screen to Krux, a hardware signing device, when it is asked to sign a multi-input Bitcoin transaction where the amounts of some inputs cannot be independently verified. The risk is that a malicious transaction co…

New user-facing warning for unverified multi-input SegWit amountsDetection logic tied to BIP143 signature semantics and inp.is_verifiedDoes not enforce previous-transaction inclusion; user can still proceed
518b3314by odudex+159−24 files
Vendor flagged security relevance
Low 27 AI analysisMessage 85 · Strong
KX KruxKrux BitcoinHardware wallets

fix: render negative amounts correctly in format_btc

This commit fixes a display bug in how Krux formats negative Bitcoin amounts. Previously, a value like -1000 satoshis was shown incorrectly as roughly -1.99 bitcoins instead of -0.00001 bitcoins, because the code split the number before ha…

UI/display bug in financial amount renderingNo cryptographic, authorization, or memory-safety changesNo input validation, parsing, or serialization of untrusted data changed
c7e48ae1by odudex+22−12 files
No security note in commit
Moderate 53 AI analysisMessage 62 · Adequate
KX KruxKrux BitcoinHardware wallets

docs: add Maix Bit removal and Shannon calc fix to CHANGELOG

This commit is a documentation update to the project's changelog. It describes two security-related changes that were apparently made in earlier code: a heap buffer overflow in the camera-based entropy (randomness) module that could only b…

Heap buffer overflow in camera entropy / Shannon entropy moduleOut-of-bounds write of 49,152 bytes on discontinued Maix Bit deviceRemoval of deterministic os.urandom() PRNG from firmware
b0a7357eby odudex+7−01 file
Vendor flagged security relevance
Moderate 55 AI analysisMessage 82 · Strong
KX KruxKrux BitcoinHardware wallets

chore: bump MaixPy with Shannon changes and RNG removal

This commit updates a bundled firmware component called MaixPy. The commit message says it fixes a 'Shannon heap overflow,' removes an unused random-number binding, and drops support for one hardware variant (Maix Bit). A heap overflow is …

Commit message explicitly mentions fixing a heap overflowRemoval of an unused cryptographic/randomness binding (os.urandom)Submodule bump only; no source-level patch visible in this commit
5c4ece9aby odudex+1−11 file
Vendor flagged security relevance
Moderate 52 AI analysisMessage 85 · Strong
KX KruxKrux BitcoinHardware wallets

fix: remove Maix Bit and CIF camera support

This commit removes support for an old, discontinued hardware device called the Maix Bit from the Krux Bitcoin wallet firmware. The commit message says the Maix Bit's camera resolution (CIF) was the only one that fed frames larger than QVG…

Buffer overflow / scratch buffer overflow claimed in commit message (49,152 bytes)Removal of vulnerable hardware code path rather than hardening the entropy moduleDiscontinuation of affected device reduces real-world exposure
8090ac73by odudex+11−1279 files
Vendor flagged security relevance
Informational 15 AI analysisMessage 90 · Strong
KX KruxKrux BitcoinHardware wallets

refactor: use native uUR on tests and simulator

This commit is a routine engineering cleanup: it removes a Python-only compatibility layer (a 'shim') used for testing and simulation, and makes the test environment use the same C-language UR encoder/decoder module that the real hardware …

2fe2f5f5by odudex+108−24919 files
No security note in commit
Low 34 AI analysisMessage 62 · Adequate
KX KruxKrux BitcoinHardware wallets

refactor: catch Exception, not bare except, in parse_wallet fallbacks

This commit tightens error handling in Krux's wallet parsing. Previously, the code used bare 'except:' clauses that would catch everything, including KeyboardInterrupt and SystemExit. Those special exceptions should normally be allowed to …

Bare except clauses replaced with except Exception to avoid swallowing KeyboardInterrupt/SystemExitNew regression test ensures KeyboardInterrupt propagates through all parse_wallet fallback branchesComments explicitly call out untrusted input and interrupt propagation behavior
6f617710by kkdao+42−72 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 candidatefix: reject PSBT inputs with non-standard sighash types before signing (#844)by Odudex · e5318112 · Mar 30, 2026 · 3 filesMessage 98 · StrongHigh 78Details
Commit message · Odudex

fix: reject PSBT inputs with non-standard sighash types before signing (#844)

Adds pre-sign validation that refuses to sign if any input requests SIGHASH_NONE, SIGHASH_SINGLE, or ANYONECANPAY, which could allow an attacker to redirect funds after signing. Addresses security audit C2 of #843

98/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference✓ Names security-relevant behavior explicitly
Why it was queued
explicit security languagesigning boundarysigning or wallet path
AI analysis · High 78/100

Krux is a small, open-source Bitcoin signing device (hardware wallet). This commit fixes a security flaw where the device would sign transactions even if the sender asked it to use unusual Bitcoin signature modes—specifically SIGHASH_NONE, SIGHASH_SINGLE, or ANYONECANPAY. Those modes can let someone else change where the money goes after the device has already signed, which could be abused to steal funds. The fix makes the device refuse to sign any PSBT (the file format used to pass a transaction around) that contains those non-standard modes. The project labels this as a security fix for an external audit finding.

Security candidatefix: printer not changing TX/RX pin (#810)by Tads · 97d37c44 · Jan 22, 2026 · 2 filesMessage 65 · AdequateLow 28Details
Commit message · Tads

fix: printer not changing TX/RX pin (#810)

65/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
Why it was queued
access control
AI analysis · Low 28/100

This commit fixes a bug where the Krux device could not switch which physical pins it uses to talk to a printer. The change forces the hardware to reassign the printer's data pins (TX/RX) even if they were already mapped to something else. This is a functional bug fix rather than a clear security patch, but incorrect pin mapping could in theory cause a printer to misbehave or leak data on the wrong pins.

Security candidatechore: update blackby odudex · acf84c93 · Jan 22, 2026 · 3 filesMessage 40 · ThinInformational 15Details
Commit message · odudex

chore: update black

40/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
boot or update path
AI analysis · Informational 15/100

This is a routine developer maintenance commit that updates the Black code formatter from version 25 to version 26, refreshes the Poetry lockfile with newer versions of many development and documentation dependencies, and applies one tiny formatting change (removing a blank line) in a font conversion script. There is no indication of any security fix or vulnerability being addressed.

Security candidatechore: require urllib3 >2.6 security fix for CVE-2025-66471 urllib3 is dependency of requests and translate, used in dev toolsby odudex · 268f3f7b · Dec 8, 2025 · 2 filesMessage 98 · StrongLow 36Details
Commit message · odudex

chore: require urllib3 >2.6
security fix for CVE-2025-66471
urllib3 is dependency of requests and translate, used in dev tools

98/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference✓ Names security-relevant behavior explicitly
Why it was queued
explicit security language
AI analysis · Low 36/100

This commit updates the project's Python dependency lock file to require urllib3 version 2.6.0 or newer. The commit message says this is a security fix for CVE-2025-66471, a vulnerability in the urllib3 library. urllib3 is used indirectly through other packages (requests and translate) and only in development tools, not in the main Krux firmware that runs on hardware wallets. The change itself is a routine dependency bump, not a code fix inside Krux.

Security candidateInverted Color QR Code Decoding (#795)by Odudex · 573de433 · Dec 4, 2025 · 8 filesMessage 76 · AdequateInformational 15Details
Commit message · Odudex

Inverted Color QR Code Decoding (#795)

* feature: added inverted color QR code detection
with improved QR code decoding performance

* inverted color QR code: optional flag to find them

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
boot or update path
AI analysis · Informational 15/100

This commit is a normal feature update for the Krux Bitcoin signing device. It adds the ability to detect QR codes that have inverted colors (black background with white QR code) and renames some internal camera-mode functions. There is no indication of a security vulnerability or malicious change in the code.

Security candidateDatum crypto-bip39: join list so Datum can load and display it (#799)by Odudex · 9a06ae7f · Dec 4, 2025 · 2 filesMessage 58 · ThinInformational 18Details
Commit message · Odudex

Datum crypto-bip39: join list so Datum can load and display it (#799)

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
secret or key material
AI analysis · Informational 18/100

This commit fixes a display bug in Krux's Datum tool. When a user scanned a BIP39 mnemonic seed phrase from a QR code, the device received the words as a list but tried to show them as a single string, which could not render correctly. The fix joins the word list into a normal spaced sentence so the device can display it. There is no direct evidence this is a security vulnerability, only a UI/data-format bug.

Security candidateRefactor capture entropy test to be less fragile, more DRY (#781)by kdmukai · f091ec71 · Nov 25, 2025 · 1 fileMessage 73 · AdequateInformational 15Details
Commit message · kdmukai

Refactor capture entropy test to be less fragile, more DRY (#781)

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference✓ Names security-relevant behavior explicitly! No meaningful explanatory body
Why it was queued
entropy or randomnessseed or entropy path
AI analysis · Informational 15/100

This commit only refactors a single test file to make the tests less brittle and remove duplicated code. It does not change any production code, cryptographic logic, or user-facing behavior. There is no security issue here.

Security candidateMinor UI change: Add line break for "bits/px" Shannon's entropy text (#780)by kdmukai · 30efd634 · Nov 24, 2025 · 25 filesMessage 63 · AdequateInformational 15Details
Commit message · kdmukai

Minor UI change: Add line break for "bits/px" Shannon's entropy text (#780)

63/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Links an issue, advisory, or supporting reference✓ Names security-relevant behavior explicitly! No meaningful explanatory body
Why it was queued
entropy or randomnessseed or entropy path
AI analysis · Informational 15/100

This commit is a cosmetic user-interface change. It splits a single line of text showing camera-captured entropy statistics into two lines so it fits better on small screens. No security-sensitive code, calculations, or behavior was altered.

Security candidateTrue Binary QR codes (#777)by Odudex · fd46e8df · Nov 22, 2025 · 7 filesMessage 76 · AdequateLow 36Details
Commit message · Odudex

True Binary QR codes (#777)

* Update Maixpy to return bytes object from binary QR codes

* Update Datum to auto convert, when possible, binary QRs to strings

* Ensure addresses become strings when scanned

* When encryption-key is scanned, try to decode as str

---------

Co-authored-by: Jean Do <117163651+jdlcdl@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
boot or update path
AI analysis · Low 36/100

This commit fixes how Krux handles QR codes that contain raw binary data rather than plain text. Previously, some scanned binary QR codes may have been processed incorrectly because the firmware expected text strings. The change makes the device try to decode binary QR content as text when possible, and keep it as raw bytes when it cannot. This is a bug fix for handling certain binary-encoded QR codes, not a new security vulnerability.

Security candidateKboot: Disable "interactive mode" (Embed Fire issue) (#778)by Odudex · 37085e3e · Nov 22, 2025 · 1 fileMessage 58 · ThinModerate 54Details
Commit message · Odudex

Kboot: Disable "interactive mode" (Embed Fire issue) (#778)

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
boot or update path
AI analysis · Moderate 54/100

This commit changes one line in the Kboot bootloader firmware to disable something called 'interactive mode.' The title suggests this is related to an issue with 'Embed Fire' hardware. Interactive boot modes can sometimes allow an attacker with physical access to interrupt the normal boot process, read memory, or load unauthorized code. Without the actual diff, we cannot see what was changed or confirm how serious it is.

Security candidateGive warning for non-ASCII BIP39-passphrase (#769)by Tads · fad4a0b8 · Nov 17, 2025 · 27 filesMessage 58 · ThinLow 37Details
Commit message · Tads

Give warning for non-ASCII BIP39-passphrase (#769)

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
secret or key materialaccess controlsigning or wallet path
AI analysis · Low 37/100

This change relaxes a safety rule in the Krux hardware wallet firmware. Previously, if a user scanned a BIP39 passphrase QR code containing non-English/non-ASCII characters (for example accented letters or symbols), Krux would block it with an error. Now it shows a warning and lets the user proceed anyway. The risk is that different wallet software may interpret those special characters slightly differently, so the user could end up with a different Bitcoin key than expected and potentially lose access to funds. The change is intentional and documented, not a hidden bug.

Security candidateEmbit update: Improved BIP39 mnemonic validation (#759)by Odudex · 6806a792 · Nov 13, 2025 · 3 filesMessage 58 · ThinLow 44Details
Commit message · Odudex

Embit update: Improved BIP39 mnemonic validation (#759)

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
secret or key materialcryptography-sensitive path
AI analysis · Low 44/100

This commit tightens how a Bitcoin wallet tool (Krux) checks recovery phrases. Previously, the code accepted phrases with extra spaces, tabs, newlines, or commas between words because it used a loose 'strip and split' approach. Now it requires words to be separated by exactly one ordinary space. The change is defensive: malformed phrases that a user might accidentally type are now rejected, reducing the chance of accepting an invalid or unexpectedly interpreted recovery phrase.

Security candidateAdd backtick to NUM_SPECIAL_2 (#766)by Tads · 8df6ac23 · Nov 13, 2025 · 4 filesMessage 53 · ThinInformational 19Details
Commit message · Tads

Add backtick to NUM_SPECIAL_2 (#766)

53/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
Why it was queued
boot or update path
AI analysis · Informational 19/100

This commit is a small bug fix that adds the backtick character (`) to the on-screen keyboard's special-character set and to the font builder. It also removes several unused constants from a touchscreen driver file. There is no indication this is a security fix; it appears to be a usability correction so users can type a backtick when entering text.

Security candidateEmbed Fire - update krux build scriptby odudex · e6b895e5 · Oct 30, 2025 · 2 filesMessage 45 · ThinInformational 15Details
Commit message · odudex

Embed Fire - update krux build script

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
boot or update path
AI analysis · Informational 15/100

This commit simply adds a new hardware device called 'Embed Fire' to the list of devices Krux builds firmware for during release builds. It is a build-script update with no visible security implications.

Security candidateEmbed Fire - update Maixpyby odudex · 9eb4ebe3 · Oct 30, 2025 · 4 filesMessage 35 · OpaqueInformational 15Details
Commit message · odudex

Embed Fire - update Maixpy

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
boot or update path
AI analysis · Informational 15/100

This commit is a routine version bump from 25.10.1 to 25.11.beta0 in three files: documentation config, Python package config, and source metadata. The actual firmware submodule 'firmware/MaixPy' is referenced as changed but its diff is not shown. There is no visible security-relevant code change in the supplied diff.

Security candidateNew Device: Embed Fire (#738)by Odudex · dd36f474 · Oct 30, 2025 · 31 filesMessage 86 · StrongInformational 15Details
Commit message · Odudex

New Device: Embed Fire (#738)

* add new device: Embed Fire

custom display initialization for Embed Fire

* add touchscreen tests
not only for Embed Fire

* Embed Fire added to simulator and docs (#53)

---------

Co-authored-by: Tads <tadeubas@gmail.com>

86/100 · StrongMessage clarity
✓ 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
boot or update path
AI analysis · Informational 15/100

This commit adds support for a new hardware device called 'Embed Fire' to the Krux Bitcoin signer firmware. It includes new display and touchscreen driver code, build/flash tooling updates, simulator support, documentation, and a large set of unit tests. There is no indication in the commit or supplied references that this change fixes or introduces a security vulnerability.

Security candidateRelease 25.10.1 (#757)by Odudex · 64212093 · Oct 30, 2025 · 10 filesMessage 74 · AdequateModerate 64Details
Commit message · Odudex

Release 25.10.1 (#757)

* BugFix: Passphrase (via encrypted mnemonic entropy) fails gracefully (#756)

* resolve bug found by @tadeubas around encrypted passphrases
In Cpython a UnicodeDecodeError was being caught/ignored by the ValueError,
while in MaixPy, a TypeError was being raised, not caught, bubbling up:
...whenever an encrypted passphrase returned bytes that could not be decoded to a string.
Symptoms:
on simulator: appeared as if NOT KEF or user declines to decrypt,
on k210: TypeError("Can't convert 'int' object to str implicitely",)

* Passphrases: Ensure they are ASCII strings

* better error handling for decrypted wallet descriptors

* Similar pattern fix for encrypted addresses that don't decode
decoding of plaintext data is done separately in it's on
try except block to catch decoding errors and fail early.

---------

Co-authored-by: odudex <odudex@proton.me>

* update version: 25.10.1

---------

Co-authored-by: Jean Do <117163651+jdlcdl@users.noreply.github.com>

74/100 · AdequateMessage clarity
✓ Subject identifies a change✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference✓ Names security-relevant behavior explicitly
Why it was queued
entropy or randomnessaccess controlsigning or wallet path
AI analysis · Moderate 64/100

This release fixes a bug in Krux, a Bitcoin signing device firmware. When a user scanned an encrypted QR code meant to provide a wallet passphrase, address, or wallet descriptor, the device could silently treat the raw encrypted bytes as the passphrase/data instead of showing an error. That could lead to the wrong Bitcoin wallet being derived, with no warning to the user. The patch adds proper error handling and now rejects non-ASCII passphrases.

Security candidateupdate Maixpy fontsby odudex · f9e1f7d5 · Oct 24, 2025 · 1 fileMessage 28 · OpaqueInformational 3Details
Commit message · odudex

update Maixpy fonts

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
boot or update path
AI analysis · Informational 3/100

This commit is described as updating fonts in the MaixPy firmware component. No actual code diff is available, and there are no verified references linking this change to any security issue. Based solely on the provided materials, there is no evidence this is a security fix or introduces a vulnerability.

Security candidateupdate Maixpy fontsby odudex · fb9cc51f · Oct 24, 2025 · 1 fileMessage 28 · OpaqueInformational 2Details
Commit message · odudex

update Maixpy fonts

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
boot or update path
AI analysis · Informational 2/100

This commit is described as updating fonts in the MaixPy firmware component. No actual code diff is available, and there are no verified references linking the change to any security issue. Based solely on the provided materials, there is no evidence this is a security fix or introduces a vulnerability.

Security candidateXOR doesn’t display invalid mnemonic lengths for user selection (#747)by Tads · bfbdaec5 · Oct 22, 2025 · 32 filesMessage 81 · StrongInformational 24Details
Commit message · Tads

XOR doesn’t display invalid mnemonic lengths for user selection (#747)

* XOR doesn’t display invalid mnemonic lengths for user selection

* XOR prompt msg now warns about passphrase

* XOR fix incorrect fingerprint displayed when using passphrase

81/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
access control
AI analysis · Informational 24/100

This commit fixes two user-facing bugs in Krux's 'mnemonic XOR' feature. First, when asking the user to pick a mnemonic length, it now only shows the length that matches the currently loaded wallet (12 or 24 words), preventing the user from accidentally selecting an incompatible length. Second, it now warns the user that the wallet passphrase and descriptor will be discarded before starting the XOR operation, and it corrects the fingerprint shown after the XOR so it no longer incorrectly includes the old passphrase. These are usability and correctness fixes rather than remote-exploitable security holes.

Security candidateupdate Maixpy: SPIFFS load and save cleanupby odudex · e94029a3 · Sep 30, 2025 · 1 fileMessage 45 · ThinInformational 2Details
Commit message · odudex

update Maixpy: SPIFFS load and save cleanup

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
boot or update path
AI analysis · Informational 2/100

This commit updates a submodule called MaixPy with a one-line change described as 'SPIFFS load and save cleanup.' No actual code diff is available, and there are no verified references indicating this fixes or introduces a security problem. Based solely on the provided materials, nothing can be determined about security impact.

Security candidateRefactor btn turbo and other small changes (#734)by Tads · b447216e · Sep 26, 2025 · 21 filesMessage 78 · AdequateInformational 18Details
Commit message · Tads

Refactor btn turbo and other small changes (#734)

* Refactor btn turbo and other small changes

* Added tests to increase coverage of input

78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Why it was queued
seed or entropy path
AI analysis · Informational 18/100

This commit is a routine user-interface cleanup. It centralizes how 'fast-forward' and 'fast-backward' button-hold navigation works across keypads, menus, QR transcribe, and seed editors. It also adds swipe gestures in more places and tweaks how the Yahboom device's extra page button behaves. There is no indication it fixes a security vulnerability or introduces a clear one.

Security candidateincreased SD Card compatibilityby odudex · bb084dbb · Sep 24, 2025 · 2 filesMessage 35 · OpaqueInformational 15Details
Commit message · odudex

increased SD Card compatibility

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
boot or update path
AI analysis · Informational 15/100

This commit is a routine changelog update describing improved SD card support in Krux. The actual code change in the MaixPy submodule is not shown in the supplied diff, so no security issue can be identified from the materials provided.

Security candidateClean up touch checks (#730)by Tads · c47eb0af · Sep 23, 2025 · 12 filesMessage 53 · ThinLow 27Details
Commit message · Tads

Clean up touch checks (#730)

53/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
Why it was queued
seed or entropy path
AI analysis · Low 27/100

This commit is a code cleanup that centralizes touchscreen checks across the Krux firmware. It replaces scattered checks of `self.ctx.input.touch is not None` with a single flag `kboard.has_touchscreen`, and allows touch settings to remain accessible even when the touch input object is temporarily disabled. There is no direct evidence in the commit of a security vulnerability being fixed, but the change touches input-handling logic and could affect behavior if the flag gets out of sync with the actual touch object state.

Security candidateremoved unsused/deprecated files (#729)by Tads · 86a6bb8f · Sep 23, 2025 · 3 filesMessage 53 · ThinInformational 15Details
Commit message · Tads

removed unsused/deprecated files (#729)

Remove Vagrant file

53/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
Why it was queued
boot or update path
AI analysis · Informational 15/100

This commit simply deletes three unused or deprecated files: a Vagrant virtual-machine configuration, a font-build helper script, and the README section that described the deprecated script. There is no change to the actual Krux firmware, wallet logic, or security-sensitive code, so it does not introduce or fix a security vulnerability.