AI-generated analysisPublished automatically and not human-verified. Validated context appears in community notes below.
← Watch feed
Moderate 64 Bitcoin

Release 25.10.1 (#757)

Public commit record

What the developer wrote

Authored by Odudex

74/100 · Adequate
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>
✓ 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
The short version

What changed, and why it matters

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.

Recommended action

Users running Krux 25.09.0 or 25.10.0 should upgrade to 25.10.1, especially if they use encrypted QR passphrases, addresses, or wallet descriptors. Developers should review other decrypt_kef() call sites for the same pattern and consider adding runtime-agnostic exception handling for byte-to-string decoding.

Security signals we found

01

Silent derivation of wrong wallet from encrypted passphrase/data due to uncaught decoding exception

02

Cross-runtime behavior difference: CPython UnicodeDecodeError vs MaixPy TypeError

03

Missing input validation for passphrase character set

04

Patch adds explicit decode-try blocks and ASCII validation

05

Vendor changelog explicitly describes the bug as a security-relevant wallet-derivation issue

Risk score

Why this scored 64/100

Our methodology →
Potential impact 18/30
Exploitability 12/25
Stealth signal 10/15
Affected reach 12/15
Confidence 8/10
Evidence quality 4/5
Human-validated context

Community notes

Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.

No validated notes yet.

The AI analysis stands alone for now. Submit a note if you can add evidence or important context.