KX
← All projectsKrux

Krux

Open-source signing firmware for Kendryte K210 devices.

BitcoinHardware walletsNormal
Repository coverage

216 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 queue22AI analyses
39commits · 30 days
59commits · 60 days
100commits · 180 days
216commits · 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
59Strong · 80–100
62Adequate · 60–79
79Thin · 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.
Odudex29148272
odudex892910159
Tads36101063
qlrd1621082
kdmukai422066
tadeubas410038
kkdao1200083
Jean Do600078
Naman015500060
bitcoisas500066
Naman Gupta200079
SatsCzar200062
Analysis record

Published AI watches

Last scanned 46 minutes ago

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
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
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
Informational 15 AI analysisMessage 95 · Strong
KX KruxKrux BitcoinHardware wallets

test: build embit's C libsecp256k1 for tests

This commit only changes how automated tests are run. It builds a C cryptography library during testing so the test environment matches the real firmware more closely. There is no change to the actual Krux firmware or wallet code, and no s…

ac3ea482by odudex+37−03 files
No security note in commit
Low 37 AI analysisMessage 90 · Strong
KX KruxKrux BitcoinHardware wallets

docs: self-host math, remove MathJax/require.js CDN

This change removes third-party web scripts (MathJax and require.js loaded from a content delivery network) from the project's documentation and replaces them with self-hosted, pre-rendered math images. That eliminates a supply-chain risk …

Removal of cdnjs MathJax and require.js external script loadsSelf-hosting of rendered math assets as static SVGsExplicit commit message reference to supply-chain class (polyfill.io incident)
492820a1by odudex+8779−8928 files
Vendor flagged security relevance
Low 32 AI analysisMessage 95 · Strong
KX KruxKrux BitcoinHardware wallets

feat: migrate UR encoding to uUR MicroPython C module

This commit swaps out the pure-Python QR code encoding/decoding libraries used by the Krux hardware wallet for a new C module called uUR. The stated goal is faster scanning and lower memory use. The change touches code that handles Bitcoin…

Large-scale dependency swap in cryptographic data path (UR/PSBT/wallet descriptors/BIP39 seeds)New native C module is not visible in this diff; behavior must be trusted to MaixPy firmware imageShim layer changes string case handling (uppercase Bytewords) and decoder attribute semantics
401c70c4by odudex+167−7612 files
No security note in commit
High 74 AI analysisMessage 83 · Strong
KX KruxKrux BitcoinHardware wallets

Security Hardening (#851)

This commit fixes four security weaknesses in Krux, a Bitcoin hardware-wallet project. The changes prevent: (1) encrypted backups from declaring zero or very low password-stretching effort, which would make them easy to brute-force; (2) mu…

Minimum PBKDF2 iteration enforcement against trivial work-factor envelopesRejection of multiple origin-less xpubs in multi-key descriptorsSD file-list filtering of traversal entries ('.', '..', path separators)
8f62c860by Odudex+263−39 files
Vendor flagged security relevance
Moderate 66 AI analysisMessage 93 · Strong
KX KruxKrux BitcoinHardware wallets

fix: add zip bomb protection and QR part limit enforcement (#843) (#848)

This commit fixes two denial-of-service weaknesses in Krux, a Bitcoin hardware-wallet firmware. First, it caps how much data can come out of compressed (deflated) QR codes and encrypted backups, preventing a maliciously crafted 'zip bomb' …

zip-bomb / decompression-bomb protectiondenial-of-service (OOM) mitigationinput validation on multi-part QR part counts
bd95e828by Odudex+102−610 files
Vendor flagged security relevance
Moderate 60 AI analysisMessage 93 · Strong
KX KruxKrux BitcoinHardware wallets

fix: warn user before signing raw hashes in message signing (#846)

This commit adds a warning screen to Krux's message-signing feature when the user is about to sign a raw 32-byte hash or a 64-character hex string. Previously, the device would silently treat such inputs as already-hashed values and sign t…

Silent signing of raw 32-byte values allowed transaction sighash spoofingMessage signing path treated raw hashes identically to SHA256(message) digestsFix explicitly references 'C3 of #843' as a security concern
23bc73b3by Odudex+46−726 files
Vendor flagged security relevance
High 78 AI analysisMessage 98 · Strong
KX KruxKrux BitcoinHardware wallets

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

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

Explicit security fix for externally-reported audit finding (#843 C2)Pre-sign validation added to reject non-standard sighash typesRelevant to transaction-replacement / fund-redirect attacks via SIGHASH_NONE/SINGLE/ANYONECANPAY
e5318112by Odudex+115−03 files
Vendor flagged security relevance
Low 36 AI analysisMessage 98 · Strong
KX KruxKrux BitcoinHardware wallets

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

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 …

Dependency version bump for a reported CVE (CVE-2025-66471)urllib3 constrained to >=2.6.0Affected packages moved from main to dev dependency group, limiting runtime exposure
268f3f7bby odudex+23−172 files
Vendor flagged security relevance
Informational 18 AI analysisMessage 58 · Thin
KX KruxKrux BitcoinHardware wallets

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

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…

No security-relevant keywords in commit title or messageNo input validation changesNo cryptographic operation changes
9a06ae7fby Odudex+2−42 files
No security note in commit
Informational 15 AI analysisMessage 73 · Adequate
KX KruxKrux BitcoinHardware wallets

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

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.

f091ec71by kdmukai+18−511 file
No security note in commit
Informational 15 AI analysisMessage 63 · Adequate
KX KruxKrux BitcoinHardware wallets

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

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

30efd634by kdmukai+52−2725 files
No security note in commit
Low 37 AI analysisMessage 58 · Thin
KX KruxKrux BitcoinHardware wallets

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

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

Relaxation of input validation for BIP39 passphraseNon-ASCII passphrase now allowed after warning instead of blockedBIP39 NFKD normalization not performed due to firmware size constraints
fad4a0b8by Tads+53−1127 files
Vendor flagged security relevance
Low 44 AI analysisMessage 58 · Thin
KX KruxKrux BitcoinHardware wallets

Embit update: Improved BIP39 mnemonic validation (#759)

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

Stricter input validation for BIP39 mnemonic parsingRejection of whitespace-normalized parsing that could mask malformed user inputAlignment with upstream embit validation behavior
6806a792by Odudex+43−33 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 · AdequateTriage 18Details
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
Security candidatechore: update blackby odudex · acf84c93 · Jan 22, 2026 · 3 filesMessage 40 · ThinTriage 12Details
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
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 · AdequateTriage 12Details
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
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 · AdequateTriage 12Details
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
Security candidateKboot: Disable "interactive mode" (Embed Fire issue) (#778)by Odudex · 37085e3e · Nov 22, 2025 · 1 fileMessage 58 · ThinTriage 12Details
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
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 · ThinTriage 12Details
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
Security candidateEmbed Fire - update krux build scriptby odudex · e6b895e5 · Oct 30, 2025 · 2 filesMessage 45 · ThinTriage 12Details
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
Security candidateEmbed Fire - update Maixpyby odudex · 9eb4ebe3 · Oct 30, 2025 · 4 filesMessage 35 · OpaqueTriage 12Details
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
Security candidateNew Device: Embed Fire (#738)by Odudex · dd36f474 · Oct 30, 2025 · 31 filesMessage 86 · StrongTriage 12Details
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
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 · OpaqueTriage 12Details
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
Security candidateupdate Maixpy fontsby odudex · fb9cc51f · Oct 24, 2025 · 1 fileMessage 28 · OpaqueTriage 12Details
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
Security candidateXOR doesn’t display invalid mnemonic lengths for user selection (#747)by Tads · bfbdaec5 · Oct 22, 2025 · 32 filesMessage 81 · StrongTriage 18Details
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
Security candidateupdate Maixpy: SPIFFS load and save cleanupby odudex · e94029a3 · Sep 30, 2025 · 1 fileMessage 45 · ThinTriage 12Details
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
Security candidateRefactor btn turbo and other small changes (#734)by Tads · b447216e · Sep 26, 2025 · 21 filesMessage 78 · AdequateTriage 15Details
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
Security candidateincreased SD Card compatibilityby odudex · bb084dbb · Sep 24, 2025 · 2 filesMessage 35 · OpaqueTriage 12Details
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
Security candidateClean up touch checks (#730)by Tads · c47eb0af · Sep 23, 2025 · 12 filesMessage 53 · ThinTriage 15Details
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
Security candidateremoved unsused/deprecated files (#729)by Tads · 86a6bb8f · Sep 23, 2025 · 3 filesMessage 53 · ThinTriage 12Details
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