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
197commits · 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 14 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.

AI review queuedadd bull bitcoin to docsby tadeubas · 0b3f38eb · Oct 25, 2025 · 2 filesMessage 38 · OpaqueInformational 15Details
Commit message · tadeubas

add bull bitcoin to docs

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

This commit only updates user documentation to add Bull Bitcoin as a compatible wallet coordinator and makes a minor punctuation edit. There are no code changes and no security implications.

AI review queuedupdate versionby odudex · 9214d5ec · Oct 24, 2025 · 3 filesMessage 18 · OpaqueInformational 15Details
Commit message · odudex

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 simply changes three version strings from a beta release name (25.10.beta3) to the final release name (25.10.0). It does not modify any code that handles data, cryptography, user input, or device behavior. There is no security-relevant change.

AI review queuedupdate changelogby odudex · 24ae72fd · Oct 24, 2025 · 1 fileMessage 18 · OpaqueInformational 15Details
Commit message · odudex

update 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 the project's changelog text. It reorders and rewords release notes, updates the version/date heading, and fixes minor punctuation. No code, firmware, cryptographic logic, or security behavior was changed.

AI review queuedup version to beta3by odudex · 03374b23 · Oct 24, 2025 · 3 filesMessage 28 · OpaqueInformational 15Details
Commit message · odudex

up version to beta3

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 bumps the project's version label from '25.10.beta2' to '25.10.beta3' in three files. It contains no code, configuration, or behavior changes that affect security.

AI review queuedFix and update device docs, datum sequence, and images (#748)by Tads · 4de2cac1 · Oct 24, 2025 · 26 filesMessage 83 · StrongInformational 15Details
Commit message · Tads

Fix and update device docs, datum sequence, and images (#748)

* fix docs datum + imgs

* Add tools > touchscreen description in docs

* added more coverage

83/100 · StrongMessage clarity
✓ Specific, 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
second-pass: unusually broad change
AI analysis · Informational 15/100

This commit is a routine maintenance patch: it moves the 'Check SD Card' feature from the Tools menu into the Device Tests menu, updates user documentation and screenshots, refreshes simulator button sequences, and adds unit tests. There is no security-relevant code change and no indication of a vulnerability being fixed.

AI review queuedMnemonics XOR Docs Review (#746)by Odudex · c6c43469 · Oct 21, 2025 · 9 filesMessage 68 · AdequateInformational 15Details
Commit message · Odudex

Mnemonics XOR Docs Review (#746)

* XOR: docs review

---------

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

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a documentation and screenshot update for a feature called Mnemonic XOR. It rewrites user-facing help pages, adds new images, and updates simulator test scripts so the feature is documented and visually shown. There are no code changes that affect security, and nothing in the commit fixes or introduces a vulnerability.

AI review queuedupdate pylint IIby odudex · 0cec63ff · Oct 20, 2025 · 4 filesMessage 28 · OpaqueInformational 15Details
Commit message · odudex

update pylint II

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 updates the Pylint static-analysis tool from version 3 to version 4 and makes a small, matching cleanup in the project's internationalization helper script. It does not change any user-facing security behavior, fix a vulnerability, or alter how the application handles secrets, keys, or untrusted data.

AI review queuedupdate pylintby odudex · 8f1156f7 · Oct 20, 2025 · 2 filesMessage 18 · OpaqueInformational 15Details
Commit message · odudex

update pylint

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 is a routine maintenance update for the project's Python linting tool (pylint) and its dependency lock file. It changes configuration settings to match a newer pylint version and records updated package versions. There is no change to the actual application code that users interact with, and nothing in the commit suggests a security fix or vulnerability.

AI review queuedupdate beta versionby odudex · e07b7977 · Oct 11, 2025 · 4 filesMessage 28 · OpaqueInformational 15Details
Commit message · odudex

update beta version

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 simply bumps the project's beta version number from 25.10.beta0 to 25.10.beta1 in four files. It also removes two harmless code comments about touch settings. There are no functional code changes and no security implications.

AI review queuedfeat: add Mnemonic XOR (SeedXOR) (#727)by qlrd · cc32f6d1 · Oct 11, 2025 · 34 filesMessage 80 · StrongLow 28Details
Commit message · qlrd

feat: add Mnemonic XOR (SeedXOR) (#727)

* feat: add `Mnemonic XOR` (SeedXOR) as menu entry in `Wallet` settings

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
Why it was queued
second-pass: unusually broad change
AI analysis · Low 28/100

This commit adds a new 'Mnemonic XOR' (SeedXOR) feature to Krux, a Bitcoin hardware wallet. It lets users combine two seed phrases using a mathematical XOR operation to create a new seed, or split an existing seed into two parts. The code also refactors existing mnemonic-loading code into a shared base class. There is no indication this is a security fix; it is a new feature implementation.

AI review queuedAdd Vulture to detect dead code (#737)by Tads · dbc344ad · Sep 30, 2025 · 18 filesMessage 53 · ThinInformational 15Details
Commit message · Tads

Add Vulture to detect dead code (#737)

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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit adds a development tool called Vulture that finds unused ('dead') code and removes the dead code it detected. It is a routine code-cleanup change, not a security fix or vulnerability patch. There is no indication it introduces a security issue or addresses one.

AI review queuedWork to optimize DatumTool: don't die on contents >30K (#731)by Jean Do · 59df8881 · Sep 30, 2025 · 26 filesMessage 58 · ThinLow 32Details
Commit message · Jean Do

Work to optimize DatumTool: don't die on contents >30K (#731)

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
second-pass: unusually broad change
AI analysis · Low 32/100

This commit improves a file-viewing tool in Krux (a Bitcoin hardware-wallet firmware) so it no longer crashes when opening large files. It adds memory cleanup, caps expensive encoding checks to small samples, and shows a user-friendly error if a format conversion fails. There is no direct evidence this fixes a security vulnerability; it appears to be a robustness and user-experience improvement.

AI review queuedDatum info-box adjust (#733)by Odudex · 9ccf3890 · Sep 26, 2025 · 25 filesMessage 68 · AdequateInformational 15Details
Commit message · Odudex

Datum info-box adjust (#733)

---------

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

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
Why it was queued
second-pass: unusually broad change
AI analysis · Informational 15/100

This commit is a user-interface polish change for the Krux hardware wallet's 'Datum' tool. It splits a single translated label like 'binary: 123 bytes' into two parts ('binary:' and '123 bytes') so the device can highlight the label prefix differently in an on-screen info box. It also moves a content preview into the same info box. There is no security bug being fixed here.

AI review queuedupdate beta versionby odudex · bf361aab · Sep 16, 2025 · 3 filesMessage 28 · OpaqueInformational 15Details
Commit message · odudex

update beta version

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 simply updates three version strings from the stable release '25.09.0' to the beta release '25.10.beta0' in documentation configuration, Python package metadata, and source code. There are no code behavior changes, no bug fixes, and no security-related modifications.

AI review queuedInclude @qlrd suggestionsby tadeubas · 0244ecd3 · Sep 16, 2025 · 3 filesMessage 35 · OpaqueInformational 15Details
Commit message · tadeubas

Include @qlrd suggestions

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

This commit is a minor cleanup that incorporates suggestions from a contributor. It fixes a wording line in the changelog, corrects an indentation issue in a shell script, and refactors two Python expressions to use the `any()` function instead of chained `or` operators. There is no security relevance visible in the changes.

AI review queuedFix simulator sequences symlinks (#712)by Tads · c58bd16a · Sep 16, 2025 · 26 filesMessage 53 · ThinInformational 15Details
Commit message · Tads

Fix simulator sequences symlinks (#712)

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
signing or wallet pathdocumentation-only discountsecond-pass: unusually broad changesecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit fixes broken shortcuts (symlinks) used by the Krux simulator's test sequences. The old shortcuts contained an absolute path to a specific developer's home directory, which only worked on that one computer. The new shortcuts use relative paths so they work for everyone. This is a build/test maintenance fix with no security impact on the actual Krux wallet or its users.