BB
← All projectsBitBox

BitBox02 firmware

Firmware and bootloader for BitBox02 signing devices.

BitcoinHardware walletsNormal
Repository coverage

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

239security candidates161second-pass queue727AI analyses
72commits · 30 days
144commits · 60 days
316commits · 180 days
698commits · 365 days
Backfill bands
Aug 5 → Feb 6335 seen28 candidatesComplete
Feb 6 → Jun 6265 seen19 candidatesComplete
Jun 6 → Jul 619 seen5 candidatesComplete
Jul 6 → Aug 526 seen3 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.

58/100 average clarity
69Strong · 80–100
325Adequate · 60–79
305Thin · 40–59
88Opaque · 0–39
26security 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.
Marko Bencun452133424357
benma's agent11240106164
Niklas Dusenlund15543134057
cedwies12512063
Tomas Vrba10410071
Cedric Wiese12312049
Yasser Aziza333070
Jad14210060
Sebastian Sutter222050
thisconnect212072
benma212074
Niklas111035
Analysis record

Published AI watches

Last scanned 14 minutes ago

Informational 15 AI analysisMessage 58 · Thin
BB BitBoxBitBox02 firmware BitcoinHardware wallets

Merge commit 'refs/pull/2123/head' of https://github.com/BitBoxSwiss/bitbox02-firmware

This commit only adds two digital signature files for an already-released firmware version (v9.25.0). These are third-party reproducible-build assertions by a user named 'yaziza', not changes to the firmware source code. There is no code c…

b8bbbb64by Marko Bencun+0−02 files
No security note in commit
Informational 0 AI analysisMessage 58 · Thin
BB BitBoxBitBox02 firmware BitcoinHardware wallets

Merge commit 'refs/pull/2124/head' of https://github.com/BitBoxSwiss/bitbox02-firmware

This commit only adds two digital signature files for an already-released firmware version (v9.27.1). These are release attestation signatures from a contributor named 'yaziza'. There is no code change, no firmware change, and nothing in t…

392ac2ffby Marko Bencun+0−02 files
No security note in commit
Informational 12 AI analysisMessage 45 · Thin
BB BitBoxBitBox02 firmware BitcoinHardware wallets

Merge branch 'nickez/bb02-finalize-elf'

This commit is a build-system refactor that unifies how firmware image headers are generated for the BitBox02 and BitBox03. It replaces a device-specific Python script and a C header placeholder with a shared Python tool and JSON manifests…

New input validation in image_header.py for magic, flags, product_id, monotonic_version, marketing_version, image length, and zeroed signature slotsRust parsing now validates slot length, header length alignment, and image length bounds before deriving code lengthRemoval of prepare-stage1-unsigned path reduces attack surface in build tooling
810d3e87by Niklas Dusenlund+573−14413 files
No security note in commit
Informational 12 AI analysisMessage 78 · Adequate
BB BitBoxBitBox02 firmware BitcoinHardware wallets

bootloader: use shared stage1 header tool

This commit is a build-system refactoring for the BitBox02 bootloader. It replaces a C-language placeholder for the bootloader's stage1 header with a Python tool that generates the same header from JSON manifests during the build. The old …

5b14742fby Niklas Dusenlund+52−1105 files
No security note in commit
Low 27 AI analysisMessage 83 · Strong
BB BitBoxBitBox02 firmware BitcoinHardware wallets

scripts: unify the BitBox image format

This commit refactors the firmware image header format used by BitBox hardware wallets so that BitBox02 and BitBox03 share a single 1024-byte layout. It adds new metadata fields (product ID, version numbers, signature slots) and switches t…

Changed binary image header format and parserAdded checked integer conversions for 64-bit image lengthAdded bounds checks on slot length, header length, and image length in Rust loader
9403e6feby Niklas Dusenlund+524−376 files
No security note in commit
Informational 15 AI analysisMessage 68 · Adequate
BB BitBoxBitBox02 firmware BitcoinHardware wallets

scripts: rename image header tool

This commit simply renames a build script from bitbox03_image_header.py to image_header.py and updates all references in the Makefile and Rust build files. The script's contents and behavior are unchanged. There is no security issue here.

29d6720aby Niklas Dusenlund+7−75 files
No security note in commit
Informational 15 AI analysisMessage 70 · Adequate
BB BitBoxBitBox02 firmware BitcoinHardware wallets

Firmware v9.27.1 verification (yaziza)

This commit adds two digital signature files for BitBox02 firmware version 9.27.1. These signatures are a third-party reproducible-build verification (called an 'assertion') created by an independent contributor named yaziza. The commit do…

6d2e6955by Yasser Aziza+0−02 files
No security note in commit
Informational 15 AI analysisMessage 70 · Adequate
BB BitBoxBitBox02 firmware BitcoinHardware wallets

Firmware v9.25.0 verification

This commit adds two digital signature files to the repository. They are third-party reproducible-build attestations (assertions) for the already-released BitBox02 firmware version 9.25.0. The commit does not change any firmware source cod…

b454a627by Yasser Aziza+0−02 files
No security note in commit
Low 34 AI analysisMessage 50 · Thin
BB BitBoxBitBox02 firmware BitcoinHardware wallets

Merge remote-tracking branch 'agent/benma-agent/hww-start-session'

This commit adds a new 'session reset' command to the BitBox02 hardware wallet's USB protocol. It lets the host computer cleanly reset the device connection if a previous operation was interrupted, instead of leaving the device stuck mid-t…

New USB control command added to host-wallet protocolReset path cancels async task, resets Noise state, unlocks USB processing, and clears output queueU2F UI ownership check prevents reset from interrupting an active U2F workflow
04302490by Marko Bencun+485−1713 files
No security note in commit
Informational 15 AI analysisMessage 78 · Adequate
BB BitBoxBitBox02 firmware BitcoinHardware wallets

py: make session reset an API setup helper

This is a routine Python code refactor. It moves an existing 'reset session' command from one internal class to another and adds a version check so older firmware simply skips it. There is no security bug being fixed here; it is purely org…

50a9e76aby benma's agent+28−163 files
No security note in commit
Moderate 62 AI analysisMessage 78 · Adequate
BB BitBoxBitBox02 firmware BitcoinHardware wallets

hww: reset sessions on host reconnect

This commit fixes a bug in the BitBox02 hardware wallet where unplugging the USB cable at the wrong moment could leave a half-finished operation running. If the device stayed powered and a new host reconnected, the new host's first message…

Fixes cross-session state confusion on USB reconnectAdds explicit session reset command to cancel stale async workflowsResets Noise cryptographic session to prevent old-key encrypted responses
6679936fby benma's agent+473−1712 files
Vendor flagged security relevance
Informational 17 AI analysisMessage 58 · Thin
BB BitBoxBitBox02 firmware BitcoinHardware wallets

Merge commit 'refs/pull/2073/head' of https://github.com/BitBoxSwiss/bitbox02-firmware

This commit adds a new recovery-word entry screen for the upcoming BitBox03 hardware wallet. It is a large feature patch: it introduces a dedicated BIP39 wordlist keyboard, a new recovery-words review screen, and changes how the device han…

New UI workflow distinguishes 'back' from 'cancel' during seed restoration, reducing accidental aborts.Cancel actions still require an explicit confirmation prompt before the restore is abandoned.Wordlist keyboard disables keys that cannot lead to a valid BIP39 word, preventing invalid-word compositions at the widget level.
6b04e006by Marko Bencun+7010−24621 files
No security note in commit
Low 47 AI analysisMessage 50 · Thin
BB BitBoxBitBox02 firmware BitcoinHardware wallets

Merge remote-tracking branch 'agent/benma-agent/show-erc20-contract'

This commit improves the BitBox02 hardware wallet's Ethereum token-approval screen. When a user signs an ERC20 token transfer, the device now also shows the token's smart-contract address if the token symbol is ambiguous (the same ticker, …

UI hardening: adds contract-address confirmation for ERC20 tokens with ambiguous or unknown symbolsRegistry validation: rejects payment requests for tokens not present in the firmware's ERC20 registryBuild-time ambiguity detection: generates a sorted list of units shared by multiple contracts
410df562by Marko Bencun+203−123 files
No security note in commit
Low 26 AI analysisMessage 50 · Thin
BB BitBoxBitBox02 firmware BitcoinHardware wallets

Merge remote-tracking branch 'agent/benma-agent/bootloader-descriptor-compat'

This commit relaxes a version check in the BitBox02 bootloader upgrade code. Previously, the firmware installer required that a stage0 bootloader descriptor's version exactly matched the currently expected image version. Now it accepts des…

Strict version equality check removed from bootloader descriptor parsingChange located in bootloader upgrade / firmware installer verification pathNo bounds, length, or pointer validation changes observed
6dccfd24by Marko Bencun+19−72 files
No security note in commit
Moderate 53 AI analysisMessage 45 · Thin
BB BitBoxBitBox02 firmware BitcoinHardware wallets

Merge branch 'nickez/bb02-utf8-safe'

This commit hardens the BitBox02 firmware so it stops trusting that incoming text strings are valid UTF-8 or plain ASCII. It replaces risky C string copies with length-checked, UTF-8-aware helpers, rejects non-ASCII characters at UI bounda…

Replaced snprintf-based string copies with length-bounded UTF-8-aware copiesAdded explicit length parameter to memory_set_device_name and reject embedded/invalid nullsAdded printable-ASCII enforcement at Rust UI boundary before C rendering
0bbdf6f0by Niklas Dusenlund+338−9625 files
No security note in commit
Low 41 AI analysisMessage 28 · Opaque
BB BitBoxBitBox02 firmware BitcoinHardware wallets

Merge branch 'benma/ub'

This commit fixes a coding guideline violation in the BitBox02 factory setup code. A 32-byte buffer that receives output from a Rust function was not initialized to zeroes before use. The accompanying documentation now explicitly requires …

Uninitialized stack buffer used as output buffer for Rust/C FFI callDefensive zero-initialization added to prevent use of stale stack data on error or partial write pathsProject coding guidelines updated to mandate zero-initialization for rust_util_bytes_mut buffers
8a6fd97bby Marko Bencun+3−12 files
No security note in commit
Low 35 AI analysisMessage 68 · Adequate
BB BitBoxBitBox02 firmware BitcoinHardware wallets

oled: hold display in reset during startup

This commit fixes a display behavior issue during startup of the BitBox02 hardware wallet. Previously, when the device turned on, the screen's reset pin was left in a state that could allow leftover images or text from an earlier session t…

Information disclosure via residual display content during bootOLED reset pin sequencing hardeningDefense against stale/misleading UI state before verified firmware initializes display
cdb27835by Niklas Dusenlund+2−11 file
Vendor flagged security relevance
Informational 18 AI analysisMessage 50 · Thin
BB BitBoxBitBox02 firmware BitcoinHardware wallets

Merge remote-tracking branch 'agent/benma-agent/factorysetup-trim-unused'

This commit trims the BitBox02 factory-setup firmware image by switching stored root attestation public keys from 65-byte uncompressed to 33-byte compressed secp256k1 keys, and by using a smaller static secp256k1 verification context inste…

Change in trusted public-key table format and derivation logicSwitch to static/no-precomp secp256k1 verification contextAddition of secp256k1 self-test at boot
554a0558by Marko Bencun+457−5647 files
No security note in commit
Low 37 AI analysisMessage 50 · Thin
BB BitBoxBitBox02 firmware BitcoinHardware wallets

Merge remote-tracking branch 'agent/benma-agent/validate-py-antiklepto-signatures'

This commit adds extra safety checks in the BitBox02 Python library for ECDSA signatures used in Bitcoin and Ethereum signing. It now validates that signatures have the correct length, use valid numbers, and use the safer low-S form. It al…

Defensive validation added for ECDSA signature format and low-S encodingRecovery ID range validation added for recoverable signaturesAnti-Klepto verification now rejects malformed/malleable signatures before nonce verification
0d1a7997by Marko Bencun+152−65 files
Vendor flagged security relevance
Informational 19 AI analysisMessage 50 · Thin
BB BitBoxBitBox02 firmware BitcoinHardware wallets

Merge remote-tracking branch 'agent/benma-agent/scroll-payment-request-memo-name'

This commit tweaks how the BitBox02 hardware wallet displays a payment-request memo on screen. It changes the label from 'Memo from\n\nMerchant' to 'Memo from: Merchant' and makes the screen scrollable so long merchant names don't get cut …

No security-relevant signal in commit message or diffUI/UX change only: text formatting and scrollabilityNo memory-safety, cryptographic, or authorization changes observed
be375664by Marko Bencun+115−66 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 candidateMerge branch 'nickez/bb03-binaries'by Niklas Dusenlund · 1a648595 · Sep 3, 2026 · 170 filesMessage 45 · ThinInformational 15Details
Commit message · Niklas Dusenlund

Merge branch 'nickez/bb03-binaries'

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
cryptography-sensitive pathboot or update pathmerge-commit duplicate discount
AI analysis · Informational 15/100

This commit is a large feature merge that adds initial support for a new hardware variant, the BitBox03 (STM32U5-based development kit). It introduces new bootloader and firmware binaries, board support crates, vendored Rust dependencies (once_cell, portable-atomic, rtt-target), build scripts, and CI targets. There is no indication in the commit message or diff that this is a security fix or that it addresses any vulnerability. It appears to be routine product/platform enablement work.

Lower-priorityMerge remote-tracking branch 'agent/benma-agent/factorysetup-rtt-robustness'by Marko Bencun · f5d11f2e · Sep 3, 2026 · 2 filesMessage 50 · ThinTriage 0Details
Commit message · Marko Bencun

Merge remote-tracking branch 'agent/benma-agent/factorysetup-rtt-robustness'

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
merge-commit duplicate discount
Lower-priorityfactorysetup: make RTT framing robustby benma's agent · f23389f5 · Sep 3, 2026 · 2 filesMessage 68 · AdequateTriage 0Details
Commit message · benma's agent

factorysetup: make RTT framing robust

Read the header and payload exactly so partial RTT reads cannot truncate API messages.

Send each response as one frame. Retry the complete buffer until NoBlockSkip publishes it.

Partial byte counts from NoBlockSkip are not committed and cannot be accumulated.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Lower-priorityMerge commit 'refs/pull/2079/head' of github.com:BitBoxSwiss/bitbox02-firmwareby Marko Bencun · 975c6f5c · Sep 3, 2026 · 1 fileMessage 50 · ThinTriage 0Details
Commit message · Marko Bencun

Merge commit 'refs/pull/2079/head' of github.com:BitBoxSwiss/bitbox02-firmware

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
merge-commit duplicate discount
Lower-priorityfactorysetup: fix RTT response endiannessby benma's agent · 7aefdee6 · Sep 3, 2026 · 1 fileMessage 68 · AdequateTriage 0Details
Commit message · benma's agent

factorysetup: fix RTT response endianness

Commit dff5254d5 ("factory-setup: Remove C implementation of RTT") changed the
response length encoding from a native little-endian uint16_t to manually
assembled big-endian bytes.

This made host clients parse short response lengths as much larger values.
Restore little-endian encoding to match requests and existing clients.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Lower-priorityMerge remote-tracking branch 'agent/benma-agent/require-py-antiklepto'by Marko Bencun · 29b3fb8e · Sep 2, 2026 · 3 filesMessage 50 · ThinTriage 0Details
Commit message · Marko Bencun

Merge remote-tracking branch 'agent/benma-agent/require-py-antiklepto'

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
merge-commit duplicate discount
Lower-priorityMerge remote-tracking branch 'agent/benma-agent/reject-invalid-backup-fields'by Marko Bencun · 1e3e398a · Sep 1, 2026 · 2 filesMessage 50 · ThinTriage 0Details
Commit message · Marko Bencun

Merge remote-tracking branch 'agent/benma-agent/reject-invalid-backup-fields'

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
merge-commit duplicate discount
AI review queuedMerge commit 'refs/pull/1976/head' of https://github.com/BitBoxSwiss/bitbox02-firmwareby Marko Bencun · 386d86f5 · Sep 1, 2026 · 4 filesMessage 58 · ThinInformational 15Details
Commit message · Marko Bencun

Merge commit 'refs/pull/1976/head' of https://github.com/BitBoxSwiss/bitbox02-firmware

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

This commit adds a progress bar that appears while the BitBox02 is loading large Ethereum transaction data from a connected computer. It is a user-experience improvement, not a security fix. The code only changes how progress is displayed during normal data streaming and adds tests to verify the progress bar shows the right percentages.

AI review queuedAdd testboard openocd configby Niklas Dusenlund · c5984b41 · Sep 1, 2026 · 1 fileMessage 35 · OpaqueInformational 15Details
Commit message · Niklas Dusenlund

Add testboard openocd config

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 adds a configuration file for OpenOCD, a debugging tool used during hardware development and testing. It tells the debugger how to connect to an STM32U5 test board using a J-Link adapter. There is no change to firmware code, no user-facing feature, and no security-relevant behavior.

Lower-priorityMerge remote-tracking branch 'agent/benma-agent/fix-atecc-rx-length'by Marko Bencun · 8a9b04b9 · Aug 31, 2026 · 3 filesMessage 50 · ThinTriage 0Details
Commit message · Marko Bencun

Merge remote-tracking branch 'agent/benma-agent/fix-atecc-rx-length'

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
merge-commit duplicate discount
AI review queuedMerge branch 'py-proto'by Marko Bencun · 926a5885 · Aug 31, 2026 · 2 filesMessage 28 · OpaqueInformational 19Details
Commit message · Marko Bencun

Merge branch 'py-proto'

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
merge-commit duplicate discountsecond-pass: opaque commit message
AI analysis · Informational 19/100

This commit only adds explanatory comments to Python type-stub files describing what happens when an optional anti-klepto host nonce commitment is left out. It does not change any firmware logic, cryptographic code, or default behavior. The comments document an already-existing fallback mode, making the behavior more transparent rather than introducing a new vulnerability.

Security candidateMerge branch 'assert-v9.27.1'by Marko Bencun · 37c1fde0 · Aug 31, 2026 · 4 filesMessage 45 · ThinInformational 15Details
Commit message · Marko Bencun

Merge branch 'assert-v9.27.1'

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

This commit adds signed release assertions for the BitBox02 firmware version 9.27.1. It contains only text files and detached signatures that record the expected SHA-256 hash of the official firmware binaries. There is no code change, no bug fix, and no security patch.

Lower-priorityMerge branch 'fix-typo-request'by Niklas Dusenlund · 8f623a77 · Aug 31, 2026 · 1 fileMessage 45 · ThinTriage 0Details
Commit message · Niklas Dusenlund

Merge branch 'fix-typo-request'

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
documentation-only discountmerge-commit duplicate discount
Security candidatereleases: add v9.27.1by Marko Bencun · 45bca4de · Aug 31, 2026 · 4 filesMessage 38 · OpaqueInformational 15Details
Commit message · Marko Bencun

releases: add v9.27.1

38/100 · OpaqueMessage clarity
✓ Subject identifies a change✓ Names a concrete action or component! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
boot or update path
AI analysis · Informational 15/100

This commit simply adds official signed release artifacts for BitBox02 firmware version 9.27.1. It contains two text files with build attestations and two detached signatures. There is no code change, no bug fix, and no security-relevant content in the diff itself.

AI review queuedpy: regenerate protobuf filesby Marko Bencun · 7b533529 · Aug 31, 2026 · 2 filesMessage 35 · OpaqueInformational 19Details
Commit message · Marko Bencun

py: regenerate protobuf files

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

This commit only updates documentation comments in automatically generated Python type-stub files for the BitBox02's protocol messages. It explains that leaving out an optional 'host nonce commitment' field causes the device to fall back to older, non-anti-klepto signing behavior. No code logic, firmware behavior, or API rules were changed.

Security candidateMerge branch 'nickez/bootloader-version-in-info'by Niklas Dusenlund · 391864cd · Aug 31, 2026 · 29 filesMessage 45 · ThinInformational 20Details
Commit message · Niklas Dusenlund

Merge branch 'nickez/bootloader-version-in-info'

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
update trustcryptography-sensitive pathboot or update pathmerge-commit duplicate discount
AI analysis · Informational 20/100

This commit adds a new read-only piece of information to the BitBox02 device info API: the installed bootloader's marketing version string. It does not change how the device boots, signs, or verifies anything. It is purely an informational feature for apps and users to see which bootloader is installed, and it is not treated by the authors as a security fix.

AI review queuedMerge remote-tracking branch 'agent/benma-agent/btc-signmsg-m48'by Marko Bencun · bc336995 · Aug 28, 2026 · 4 filesMessage 50 · ThinInformational 18Details
Commit message · Marko Bencun

Merge remote-tracking branch 'agent/benma-agent/btc-signmsg-m48'

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathmerge-commit duplicate discountsecond-pass: security-sensitive path
AI analysis · Informational 18/100

This commit adds support for signing Bitcoin messages using keys under a new keypath prefix, m/48', alongside the previously allowed m/45'. It is a feature expansion, not a fix for a security flaw. The change is documented in the changelog and version bump, with no indication of a security issue.

Security candidateMerge remote-tracking branch 'agent/benma-agent/improve-firmware-loader-ux'by Marko Bencun · 7860a077 · Aug 28, 2026 · 7 filesMessage 50 · ThinLow 34Details
Commit message · Marko Bencun

Merge remote-tracking branch 'agent/benma-agent/improve-firmware-loader-ux'

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
boot or update pathmerge-commit duplicate discount
AI analysis · Low 34/100

This commit improves the Python firmware-flashing tool for BitBox hardware wallets. It adds clearer warnings, requires user confirmation before flashing, detects firmware type automatically instead of relying on filename or a debug flag, and exposes more detailed bootloader error messages. The changes are primarily usability and safety improvements for a developer/testing tool, not a fix for an exploitable device vulnerability.

Security candidatepy: improve firmware loader UXby benma's agent · fec27fee · Aug 27, 2026 · 7 filesMessage 83 · StrongInformational 23Details
Commit message · benma's agent

py: improve firmware loader UX

Detect development bootloaders and automatically classify signed and unsigned firmware inputs.

Confirm the detected combination by default, with -y/--yes for non-interactive use.

Keep --debug as a deprecated no-op for backwards compatibility.

Warn about combinations expected to fail without blocking deliberate bootloader error tests.

Treat signature-data errors as nonfatal on development devices and fatal on production devices.

Improve bootloader errors and timeout handling, and document and test the flashing matrix.

83/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Names security-relevant behavior explicitly
Why it was queued
signing boundaryupdate trustboot or update path
AI analysis · Informational 23/100

This commit improves a Python helper used by developers to flash firmware onto BitBox hardware wallets. It makes the tool smarter about whether the connected device is a production or development unit, detects signed vs unsigned firmware files automatically, and adds clearer warnings and confirmation prompts. The changes are mostly usability and safety improvements for a developer-facing script, not a fix for a remote attack on user devices.

Lower-prioritybackup: reject malformed fieldsby benma's agent · 1b828ff4 · Aug 27, 2026 · 2 filesMessage 68 · AdequateTriage 0Details
Commit message · benma's agent

backup: reject malformed fields

Treat missing optional metadata as invalid instead of unwrapping it,
and only accept the seed lengths supported by the keystore. This keeps
malformed backup files on the normal error path.

Add regression coverage for missing metadata and invalid seed lengths,
and correct the legacy create/load test's 12-byte fixture to the intended
16-byte size.

Tests:
- `cargo test --manifest-path src/rust/Cargo.toml --all-features -- --test-threads 1`
- `make unit-test`
- `make run-unit-tests`
- `make run-rust-clippy`

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Provides detailed explanatory context✓ Mentions testing or verification
Security candidateMerge remote-tracking branch 'agent/benma-agent/create-firmware-release'by Marko Bencun · 332cd4d2 · Aug 26, 2026 · 9 filesMessage 50 · ThinInformational 12Details
Commit message · Marko Bencun

Merge remote-tracking branch 'agent/benma-agent/create-firmware-release'

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathboot or update pathmerge-commit duplicate discount
AI analysis · Informational 12/100

This commit is a merge that adds and updates release-helper scripts for the BitBox02 hardware wallet. It introduces a new script to draft GitHub firmware releases, refactors existing scripts to share a common parser for signed firmware files, and adds type annotations and tests. There is no direct evidence in the diff of a security vulnerability or malicious change; it appears to be routine release-tooling maintenance.

Lower-prioritybb03 ui: enhance show recovery words uiby Jad · 3a3e3c9d · Aug 26, 2026 · 8 filesMessage 60 · AdequateTriage 0Details
Commit message · Jad

bb03 ui: enhance show recovery words ui

Show all recovery words on one screen for bb03
instead of seeing one at a time.

60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Security candidateExpose bootloader version in device infoby Niklas Dusenlund · 03cae40c · Aug 25, 2026 · 29 filesMessage 68 · AdequateInformational 19Details
Commit message · Niklas Dusenlund

Expose bootloader version in device info

Read and validate the installed stage1 header, then expose its marketing version through the HAL and device info protobuf response.

Keep the field absent for legacy bootloaders and return None from the Python client when unavailable.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
update trustdefensive validationcryptography-sensitive pathboot or update path
AI analysis · Informational 19/100

This commit adds a new read-only field to the BitBox02's device information response so the host app can learn which bootloader version is installed. It does not change how data is signed, encrypted, or authorized. The main security-relevant aspect is that the firmware now reads a small version string from the bootloader area and validates the bootloader header's magic value and length before exposing it. This is a defensive information-disclosure change rather than a vulnerability fix.

Lower-prioritydocs: fix typo requst -> requestby Vaibhav Srivastava · 6d5506d1 · Aug 25, 2026 · 1 fileMessage 57 · ThinTriage 0Details
Commit message · Vaibhav Srivastava

docs: fix typo requst -> request

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
documentation-only discount
AI review queuedMerge remote-tracking branch 'agent/benma-agent/show-eip712-primary-type'by Marko Bencun · 3b1209b3 · Aug 24, 2026 · 2 filesMessage 50 · ThinLow 30Details
Commit message · Marko Bencun

Merge remote-tracking branch 'agent/benma-agent/show-eip712-primary-type'

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathmerge-commit duplicate discountsecond-pass: security-sensitive path
AI analysis · Low 30/100

This update adds an extra confirmation screen when signing Ethereum typed messages (EIP-712). Before the user approves a signature, the device now shows the message's primary type, such as 'Authorize' or 'Revoke'. This helps users notice if a website is asking them to sign a different kind of message than they expect, reducing the risk of being tricked into approving a harmful signature.