BB
← All projectsBitBox

BitBox02 firmware

Firmware and bootloader for BitBox02 signing devices.

BitcoinHardware walletsNormal
Repository coverage

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

193security candidates127second-pass queue295AI analyses
25commits · 30 days
47commits · 60 days
312commits · 180 days
647commits · 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.

59/100 average clarity
65Strong · 80–100
281Adequate · 60–79
230Thin · 40–59
71Opaque · 0–39
23security 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 Bencun390117177258
benma's agent892843162
Niklas Dusenlund1112944059
cedwies1257063
Tomas Vrba947074
Cedric Wiese1239049
Jad811062
thisconnect211072
benma211074
Niklas111035
Yasser Aziza111070
Patrick Steiger111045
Analysis record

Published AI watches

Last scanned 53 minutes ago

Moderate 60 AI analysisMessage 90 · Strong
BB BitBoxBitBox02 firmware BitcoinHardware wallets

backup: validate decoded seed length

This update fixes a bug in how the BitBox02 hardware wallet reads backup files from an SD card. A tampered backup file could claim to contain a seed longer than the 32-byte limit, which previously caused the device to panic (crash) when li…

Out-of-bounds/panic condition in backup parsingMissing input validation on decoded protobuf fieldSD-card backup file could be attacker-controlled
80baf1eeby benma's agent+34−01 file
Vendor flagged security relevance
Informational 11 AI analysisMessage 28 · Opaque
BB BitBoxBitBox02 firmware BitcoinHardware wallets

u2f: fix refresh screen

This commit fixes a UI cleanup bug in the BitBox02 hardware wallet's U2F (Universal 2nd Factor) feature. Previously, a 'Refresh webpage' screen could be destroyed without clearing the pointer that tracked it, potentially leaving a dangling…

dangling-pointer mitigationuse-after-free preventionfirmware UI state cleanup
890f4ce3by benma's agent+17−11 file
No security note in commit
Low 27 AI analysisMessage 28 · Opaque
BB BitBoxBitBox02 firmware BitcoinHardware wallets

u2f: fix nudge screen

This commit fixes how a small on-screen reminder (the 'nudge screen') for U2F is created, tracked, and cleaned up. Before the fix, the code could lose track of the reminder screen or mishandle its removal, which might cause display glitche…

Use-after-free / dangling-pointer risk: global _nudge_label pointer could outlive the component it referencesUI state inconsistency: previous callback set _nudge_label = NULL on screen pop, but component cleanup may occur later or not at allMemory management fix: custom cleanup wrapper now synchronizes global pointer with component lifetime
931e75d6by benma's agent+22−71 file
No security note in commit
Low 39 AI analysisMessage 73 · Adequate
BB BitBoxBitBox02 firmware BitcoinHardware wallets

rust: initialize C output buffers

This commit fixes a class of low-level memory-safety bugs where Rust code was given buffers containing uninitialized bytes. Rust's rules require every byte of a slice to be initialized, even if the function will overwrite them. Passing uni…

Undefined behavior at C/Rust FFI due to uninitialized buffers being treated as Rust slicesPotential optimizer-dependent behavior from violating Rust slice initialization rulesHardening of cryptographic output paths (SHA-256, HMAC-SHA256, HMAC-SHA512)
511018eaby benma's agent+52−2713 files
Vendor flagged security relevance
High 74 AI analysisMessage 78 · Adequate
BB BitBoxBitBox02 firmware BitcoinHardware wallets

eth: limit EIP-712 recursion depth

This commit adds a hard limit on how deeply nested Ethereum typed-message (EIP-712) structures can be when the BitBox02 hardware wallet signs them. Without the limit, an attacker could craft a message type that refers to itself over and ov…

Adds explicit recursion-depth cap to attacker-controlled input parsingPre-validates schema roots before host callbacks or user confirmationProtects against stack exhaustion / denial-of-service from deeply nested EIP-712 types
4ccadcc0by benma's agent+196−451 file
No security note in commit
Informational 15 AI analysisMessage 50 · Thin
BB BitBoxBitBox02 firmware BitcoinHardware wallets

py: extract bootloader connection

This commit is a minor code cleanup in a Python helper script. It moves existing bootloader connection logic into a small nested helper function to satisfy a style checker (pylint's limit on the number of return statements). No behavior ch…

886113d0by benma's agent+10−61 file
No security note in commit
Low 42 AI analysisMessage 70 · Adequate
BB BitBoxBitBox02 firmware BitcoinHardware wallets

rust: bound executor queue

This commit replaces an unbounded task queue inside the BitBox02 firmware's Rust executor with a fixed 16-slot ring buffer. It also adds a hard limit of 16 active tasks and protects queue access with critical sections so interrupt-driven c…

Replaced unbounded queue with fixed-capacity ring buffer to prevent memory exhaustionRemoved allocation from scheduling/wake path, including interrupt contextAdded critical-section synchronization between wakers and main-loop executor
b99e200aby benma's agent+186−285 files
No security note in commit
Low 42 AI analysisMessage 78 · Adequate
BB BitBoxBitBox02 firmware BitcoinHardware wallets

Warn before truncated value displays

This commit adds a warning screen to the BitBox02 hardware wallet whenever a long message or value is about to be shown in a truncated form. Previously, the device could silently cut off the end of very long transaction details, message da…

UI truncation warning added before oversized confirmation bodiesCentralized body-size limit to keep Rust and C UI limits in syncReplaced duplicated warning logic with shared confirm_value helper
5b3aee6fby benma's agent+266−4710 files
No security note in commit
Informational 12 AI analysisMessage 45 · Thin
BB BitBoxBitBox02 firmware BitcoinHardware wallets

releases: add v9.26.2, v9.26.3 and v9.26.4

This commit is a routine release-management update. It adds signed build assertions for three new BitBox02 firmware versions (9.26.2, 9.26.3, 9.26.4) and updates the release documentation and build helper script. The build script now delet…

No firmware source code is modifiedNo cryptographic primitives or protocols are changedNo bug fixes or vulnerability mitigations are present in the diff
eed2e68eby Marko Bencun+79−116 files
No security note in commit
Informational 21 AI analysisMessage 68 · Adequate
BB BitBoxBitBox02 firmware BitcoinHardware wallets

eth: loosen EIP-712 identifier validation

This firmware update relaxes the rules for valid Ethereum typed-data (EIP-712) names so they can contain a colon (:), which some decentralized apps use as a namespace separator. Member names still cannot contain colons. The change is prese…

Input validation relaxation for externally supplied EIP-712 type namesExplicit claim that ':' cannot forge encodeType boundariesMember-name validation remains strict
9703d8d9by Marko Bencun+50−43 files
No security note in commit
Moderate 59 AI analysisMessage 69 · Adequate
BB BitBoxBitBox02 firmware BitcoinHardware wallets

Limit SD erase file size

This commit fixes a bug in how the BitBox02 hardware wallet wipes files from its SD card. Before erasing a file, the device now checks the file's reported size against a safe maximum. Without this check, a tampered SD card could claim a fi…

CVE-2026-6682 referenced in commit messageMalformed FAT directory entry could cause excessive overwrite loopDenial-of-service via SD card tampering
2453f528by Marko Bencun+4−01 file
Vendor flagged security relevance
High 70 AI analysisMessage 66 · Adequate
BB BitBoxBitBox02 firmware BitcoinHardware wallets

Validate mounted FAT geometry

This update adds a safety check when the BitBox02 hardware wallet mounts a microSD card. A malicious or deliberately malformed FAT filesystem could trick the device's file-system library into placing user data inside attacker-controlled bo…

Fixes integer-wrap / geometry confusion in FAT mount logicAdds explicit post-mount validation of filesystem metadataPrevents data area from landing inside attacker-controlled FAT sectors
01c017d6by Marko Bencun+21−01 file
Vendor flagged security relevance
Low 27 AI analysisMessage 69 · Adequate
BB BitBoxBitBox02 firmware BitcoinHardware wallets

Update FatFs to R0.16

This commit updates the third-party FatFs file-system library inside the BitBox02 firmware from version R0.14b to R0.16 plus an upstream patch. The change is a routine dependency refresh: it replaces the vendored source files with the newe…

Third-party dependency update (FatFs R0.14b -> R0.16+p1)No explicit security claim in commit messageNo CVE or advisory referenced in commit or supplied references
9f2b493dby Marko Bencun+3842−256979 files
No security note in commit
Informational 15 AI analysisMessage 28 · Opaque
BB BitBoxBitBox02 firmware BitcoinHardware wallets

py: add BitBoxSync

This commit adds a new Python client feature called BitBoxSync to the BitBox02 Python library. It introduces generated protobuf code, new API methods to request identity keys, sign various sync-related intents, and unwrap an encrypted name…

851ed04bby Marko Bencun+574−1812 files
No security note in commit
Low 34 AI analysisMessage 59 · Thin
BB BitBoxBitBox02 firmware BitcoinHardware wallets

api: add BitBoxSync

This commit adds a brand-new firmware feature called BitBoxSync, which lets the BitBox02 hardware wallet participate in a sync service by proving its identity, signing login/admin intents, and decrypting namespace encryption keys. The code…

New cryptographic API surface added to the hardware wallet (Ed25519, X25519, HKDF, AEAD)Vendored third-party crate `hkdf` introduced into the firmware supply chainNew user-confirmation flow for signing sync intents; one operation (UnwrapNamespaceDek) deliberately skips confirmation
54cdb54dby Marko Bencun+2883−2230 files
No security note in commit
Informational 0 AI analysisMessage 45 · Thin
BB BitBoxBitBox02 firmware BitcoinHardware wallets

blupgrade: update stage1 binaries to v1.2.2

This commit simply swaps in newer pre-built bootloader stage1 binary files (version 1.2.2 replacing 1.2.1) for four BitBox02 hardware variants and updates the corresponding checksum list. The actual code inside the new binary files is not …

5940a800by Marko Bencun+8−86 files
No security note in commit
Moderate 59 AI analysisMessage 50 · Thin
BB BitBoxBitBox02 firmware BitcoinHardware wallets

bootloader/stage1: fix erase handling for partially erased blocks

This update fixes the BitBox02 bootloader's firmware-erase routine. Previously, when erasing leftover padding after a firmware update, the bootloader started erasing at the exact page where the firmware ended. Because flash memory can only…

Bootloader firmware erase routine could erase a flash block containing both firmware and paddingFix aligns erase start to erase-block boundary and re-checks erased state before erasingChangelog describes the change as a fix for 'partially erased flash blocks'
b31206a8by Marko Bencun+23−83 files
No security note in commit
Informational 15 AI analysisMessage 45 · Thin
BB BitBoxBitBox02 firmware BitcoinHardware wallets

blupgrade: add stage0/stage1 production binaries

This commit adds production bootloader upgrade files for the BitBox02 hardware wallet and updates build scripts to use them. It is a routine asset-management change: replacing placeholder development hashes with real signed production bina…

8db4b0dcby Marko Bencun+26−1720 files
No security note in commit
Informational 20 AI analysisMessage 83 · Strong
BB BitBoxBitBox02 firmware BitcoinHardware wallets

blupgrade: keep dev stage1 unsigned

This commit fixes a build script used only for development/testing versions of the BitBox02 bootloader upgrade. It makes the development-stage1 bootloader images unsigned again, while keeping production images fully signature-verified. The…

Signature verification relaxed only for development buildsProduction payload validation still requires signaturesDevelopment stage0 already skipped stage1 signature verification per commit message
476b90e3by Marko Bencun+9−69 files
No security note in commit
High 76 AI analysisMessage 23 · Opaque
BB BitBoxBitBox02 firmware BitcoinHardware wallets

security improvements

This BitBox02 firmware update is a broad security patch that fixes several independent bugs: it prevents a maliciously oversized USB report from overflowing memory, stops a corrupted Bluetooth pairing database from being read or written wi…

Bounds check added to USB HID Set Report input lengthBLE bond DB length validation hardened against negative and oversized valuesBootloader firmware image size limit relaxed to intended maximum
cbb40634by Marko Bencun+1117−25021 files
Vendor flagged security relevance
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 queuedfix: validate max_fee_per_gas zero prefix in EIP-1559by cedwies · ee6e1cee · Feb 11, 2026 · 1 fileMessage 62 · AdequateLow 49Details
Commit message · cedwies

fix: validate max_fee_per_gas zero prefix in EIP-1559

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
defensive validationsigning or wallet pathsecond-pass: near security thresholdsecond-pass: security-sensitive path
AI analysis · Low 49/100

This commit fixes a typo-like bug in the BitBox02 hardware wallet's Ethereum transaction signing code. The firmware was supposed to reject a 'max_fee_per_gas' value that has an unnecessary leading zero byte, but it was accidentally checking 'gas_limit' instead. Leading-zero values can cause the device and a connected computer to compute different transaction hashes, which could let an attacker trick the user into signing one transaction while the computer broadcasts a different one. The fix corrects the field check and adds tests for both fee fields.

Security candidatehal: move bitbox02 HAL impl into a submoduleby benma's agent · 2c7d2370 · Feb 10, 2026 · 8 filesMessage 45 · ThinInformational 15Details
Commit message · benma's agent

hal: move bitbox02 HAL impl into a submodule

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

This commit is a pure code reorganization: it moves the BitBox02-specific hardware abstraction layer (HAL) implementation out of one large file into several smaller files in a new submodule. No functionality, behavior, or security properties of the firmware appear to change. It is comparable to rearranging chapters in a book without rewriting the text.

Security candidatehal: split HAL sub-traits into modulesby benma's agent · 7c32f71f · Feb 10, 2026 · 6 filesMessage 45 · ThinInformational 15Details
Commit message · benma's agent

hal: split HAL sub-traits into modules

For ease of maintenance.

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

This commit is a simple code reorganization: it takes several related pieces of a hardware abstraction layer (HAL) that were all written in one large file and splits them into smaller, separate files. No behavior of the device or its security functions was changed. It is comparable to moving chapters of a book into individual files without rewriting the text.

Security candidatehal: remove the crate::workflow::testing re-exportby benma's agent · 9988cb33 · Feb 10, 2026 · 22 filesMessage 60 · AdequateInformational 15Details
Commit message · benma's agent

hal: remove the crate::workflow::testing re-export

60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
signing or wallet pathauthentication path
AI analysis · Informational 15/100

This commit is a simple internal cleanup in the BitBox02 firmware's Rust code. It removes a shortcut (a 're-export') that made test-only user-interface helpers available under an old module path, and updates all test files to import those helpers directly from their new location. There is no change to the actual device behavior, no bug fix, and no security impact.

Security candidatehal: improve HAL module structureby benma's agent · c27a88c0 · Feb 10, 2026 · 15 filesMessage 78 · AdequateInformational 15Details
Commit message · benma's agent

hal: improve HAL module structure

- crate::workflow::Workflows are moved to crate::hal::Ui, and
crate::workflows::RealWorkflows are moved to crate::hal::BitBox02Ui
- crate::hal::testing is moved from an inline module to a file with one
submodule per trait impl

78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
seed or entropy path
AI analysis · Informational 15/100

This commit is a pure internal code reorganization (refactor) of the BitBox02 firmware's Rust code. It moves the user-interface trait and its real/testing implementations into a new 'hal' (hardware abstraction layer) module structure and renames some types (e.g., Workflows -> Ui, RealWorkflows -> BitBox02Ui, TestingWorkflows -> TestingUi). No security-sensitive behavior appears to change; it is a maintainability/clean-up change.

Lower-priorityscripts: add per-user container namesby benma's agent · f65ae14b · Feb 10, 2026 · 2 filesMessage 72 · AdequateTriage 0Details
Commit message · benma's agent

scripts: add per-user container names

Derive container names from the project and current username to avoid
collisions on multi-user machines.

72/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Explains rationale or failure mode
Lower-prioritybitbox02/ui: inline TrinaryInputParams::to_c_params()by benma's agent · 8ccba812 · Feb 9, 2026 · 3 filesMessage 65 · AdequateTriage 0Details
Commit message · benma's agent

bitbox02/ui: inline TrinaryInputParams::to_c_params()

No need for the scratch vector and Surive complications.

65/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Lower-priorityui: port trinary input to asyncby Niklas Dusenlund · 8a39a34c · Feb 9, 2026 · 4 filesMessage 60 · AdequateTriage 0Details
Commit message · Niklas Dusenlund

ui: port trinary input to async

Co-Authored-By: Marko Bencun <marko@shiftcrypto.ch>

60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Lower-prioritybitbox02/ui: inline confirm params in ui confirmby benma's agent · 1b1b4311 · Feb 9, 2026 · 2 filesMessage 60 · AdequateTriage 0Details
Commit message · benma's agent

bitbox02/ui: inline confirm params in ui confirm

No need for the scratch vector and Surive complications.

60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Lower-priorityui: port confirm component to be awaitable, reduce callback soupby Marko Bencun · 3bcb6a65 · Feb 9, 2026 · 5 filesMessage 65 · AdequateTriage 0Details
Commit message · Marko Bencun

ui: port confirm component to be awaitable, reduce callback soup

Co-Authored-By: Niklas Dusenlund <niklas.dusenlund@bitbox.swiss>

65/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI review queuedinital async-engineby Niklas Dusenlund · a4a2fc1d · Feb 9, 2026 · 95 filesMessage 43 · ThinInformational 15Details
Commit message · Niklas Dusenlund

inital async-engine

ports orientation screen and delay to show that waking works

Co-Authored-By: Marko Bencun <marko@shiftcrypto.ch>

43/100 · ThinMessage clarity
✓ Subject identifies a change✓ Provides an explanatory body
Why it was queued
second-pass: unusually broad change
AI analysis · Informational 15/100

This commit introduces a new asynchronous task engine into the BitBox02 firmware. It vendors third-party Rust libraries (async-task, concurrent-queue, crossbeam-utils) and adds a custom executor plus a small demo that shows an orientation screen and a delay. There is no indication in the commit message, diff, or supplied references that this change fixes or introduces a security vulnerability; it appears to be a routine architectural/feature addition.

Lower-prioritysrc/ui/components: Added -Feature: Hitting back during "keypad" input goes back to previous group of characters #862-by alessandro-opensource · d8efed51 · Feb 8, 2026 · 4 filesMessage 73 · AdequateTriage 0Details
Commit message · alessandro-opensource

src/ui/components: Added -Feature: Hitting back during "keypad"
input goes back to previous group of characters #862-

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
Lower-prioritysimulator: restore task pollingby Marko Bencun · 40cfb8f4 · Feb 6, 2026 · 1 fileMessage 50 · ThinTriage 0Details
Commit message · Marko Bencun

simulator: restore task polling

Accidentally removed in a48988a980feb3bf206580f09e4ee708ed8fa4ef

50/100 · ThinMessage clarity
✓ Descriptive subject✓ Provides an explanatory body
Lower-priority.gitattributes: fix path to vendor folderby Niklas Dusenlund · f8d8414e · Feb 6, 2026 · 1 fileMessage 45 · ThinTriage 0Details
Commit message · Niklas Dusenlund

.gitattributes: fix path to vendor folder

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Security candidatefirmware: port main loop to rustby Marko Bencun · a48988a9 · Feb 5, 2026 · 29 filesMessage 68 · AdequateLow 31Details
Commit message · Marko Bencun

firmware: port main loop to rust

simulator: remove u2f workflows. The simulators don't simulate u2f, so it's not needed.

Co-Authored-By: Niklas Dusenlund <niklas.dusenlund@bitbox.swiss>

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
boot or update pathparser or protocol path
AI analysis · Low 31/100

This commit rewrites the BitBox02 hardware wallet's main firmware loop from C to Rust. It is a large refactoring change that moves core USB, Bluetooth/UART, and workflow handling into Rust. The change itself is not a security fix and does not introduce an obvious vulnerability in the diff, but any rewrite of security-critical firmware code carries a risk of subtle behavioral differences or memory-safety edge cases at the C/Rust boundary. The commit message and diff do not describe any security issue or credit a researcher.

Lower-priorityAGENTS: clear instruction for how to format Rust codeby Marko Bencun · 64b15fdd · Feb 5, 2026 · 1 fileMessage 65 · AdequateTriage 0Details
Commit message · Marko Bencun

AGENTS: clear instruction for how to format Rust code

It sometimes gets on a tangent trying to figure out how to format it.

65/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Why it was queued
documentation-only discount
Lower-priorityAGENTS: clearer instruction about docker_exec.shby Marko Bencun · 396da55e · Feb 5, 2026 · 1 fileMessage 60 · AdequateTriage 0Details
Commit message · Marko Bencun

AGENTS: clearer instruction about docker_exec.sh

I often see the agent run `./scripts/docker_exec.sh bash -lc '...'`,
which doesn't work.

60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Why it was queued
documentation-only discount
Lower-prioritybitbox02: add some da14531 function wrappersby benma's agent · 1dca2c63 · Feb 5, 2026 · 6 filesMessage 60 · AdequateTriage 0Details
Commit message · benma's agent

bitbox02: add some da14531 function wrappers

set_product, set_name, power_down.

Will be used by the Rust mainloop.

60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Lower-prioritybitbox02: add Rust Ringbuffer wrapperby benma's agent · e4a7c303 · Feb 5, 2026 · 4 filesMessage 78 · AdequateTriage 0Details
Commit message · benma's agent

bitbox02: add Rust Ringbuffer wrapper

The functions needde in the unit tests are added as safe struct
methods, so they can easily be enabled for production once needed.

Co-Authored-By: Niklas Dusenlund <niklas.dusenlund@bitbox.swiss>

78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Security candidatehww: remove empty function hww_process()by Marko Bencun · f6dcfd29 · Feb 4, 2026 · 3 filesMessage 45 · ThinInformational 15Details
Commit message · Marko Bencun

hww: remove empty function hww_process()

It does nothing.

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 removes an empty placeholder function called hww_process() that did nothing. It is a routine code cleanup with no security relevance.

Lower-priorityrust: move U2F C workflows to bitbox02_rust::workflowby Marko Bencun · ddec6f90 · Feb 4, 2026 · 5 filesMessage 85 · StrongTriage 0Details
Commit message · Marko Bencun

rust: move U2F C workflows to bitbox02_rust::workflow

This is needed to avoid circular deps when we add a Rust mainloop to
bitbox02_rust.

The orientation workflow is also in there and not related to U2F, but
it will be deleted soon when the mainloop is in Rust.

85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
Lower-priorityusb: use a static write bufferby Niklas Dusenlund · 50bd169e · Feb 4, 2026 · 2 filesMessage 80 · StrongTriage 0Details
Commit message · Niklas Dusenlund

usb: use a static write buffer

Instead of relying on the caller to not modify the buffer a copy is made
to static memory. This enables the caller to use a stack allocated
buffer.

Because the USB stack uses DMA to move memory all buffers need to be
32 bit aligned. By coincidence, the buffer we currently use in the
"queue" were aligned. But when buffers are stack allocated there is a
higher chance that they sometimes are not 32 bit aligned

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
Lower-priorityAvoid string literal hex'sby Niklas Dusenlund · b564fb9f · Feb 4, 2026 · 4 filesMessage 80 · StrongTriage 0Details
Commit message · Niklas Dusenlund

Avoid string literal hex's

Starting with GCC-15 there is a warning if a static string isn't null
terminated. Use array literals intead of strings to avoid the warning.

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
Security candidatebuild: fatfs wrapper, cflagsby Niklas Dusenlund · 353e806c · Feb 4, 2026 · 106 filesMessage 70 · AdequateLow 25Details
Commit message · Niklas Dusenlund

build: fatfs wrapper, cflags

* Move fatfs into a rust crate to simplify CMake files.
* Apply C flags like stack-protector to c code that is built by cargo.

70/100 · AdequateMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
boot or update path
AI analysis · Low 25/100

This commit is a build-system refactor: it moves the FatFs microSD filesystem library from a direct CMake target into a new Rust crate wrapper, and makes sure C compiler hardening flags (such as stack-protector) are also applied when Cargo's build.rs scripts compile C code. There is no obvious runtime vulnerability in the diff, but the change touches how security-relevant C code is compiled, so it deserves a quick sanity check that the new wrapper preserves the same flags and symbol visibility.

Lower-prioritymaintenance: constify some read only thingsby Niklas Dusenlund · f05e46e8 · Feb 4, 2026 · 4 filesMessage 45 · ThinTriage 0Details
Commit message · Niklas Dusenlund

maintenance: constify some read only things

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body