TZ
← All projectsTrezor

Trezor firmware

Firmware monorepo for Trezor One, Model T, and Safe devices.

BitcoinHardware walletsNormal
Repository coverage

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

916security candidates311second-pass queue2075AI analyses
336commits · 30 days
588commits · 60 days
1363commits · 180 days
2648commits · 365 days
Backfill bands
Aug 5 → Feb 61298 seen115 candidatesComplete
Feb 6 → Jun 6775 seen58 candidatesComplete
Jun 6 → Jul 6217 seen13 candidatesComplete
Jul 6 → Aug 5360 seen54 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.

66/100 average clarity
473Strong · 80–100
1321Adequate · 60–79
862Thin · 40–59
5Opaque · 0–39
Read the scoring rubric →
Developer activity

Who is changing the project?

Public Git author strings; identities are not independently verified.

DeveloperCommitsCandidatesAnalyzedHigh riskMessage avg.
tychovrahe292104209361
Roman Zeyde572177426271
PrisionMike945991273
Andrew Kozlik712452265
obrusvit21376152164
Jakub Janků22919182
Martin Pastyřík23821173
cepetr19682164059
Ioan Bizău23076183059
M1nd3r20671162071
Lukas Bielesch846771067
Martin Milata17446150063
Analysis record

Published AI watches

Last scanned 39 minutes ago

Informational 18 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(core): remove sha1 from regular FW

This commit removes the SHA-1 hashing function from the regular Trezor firmware. SHA-1 is an old, weak hash algorithm that is no longer considered secure for sensitive uses. The change deletes the code that exposes SHA-1 to apps running on…

Removal of a deprecated cryptographic primitive (SHA-1) from the firmware API surfaceReduction of attack surface and prevention of future misuse of a collision-vulnerable hashNo direct vulnerability patch or memory-safety bug is present in the diff
16d15774by M1nd3r+0−2006 files
No security note in commit
Low 27 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(crypto): pass static public key to `noise_xxpsk3_*_init()`

This commit changes how a cryptographic library sets up secure connections. Previously, the code automatically calculated the public key from the private key. Now, the caller must provide the public key directly. This is a code-quality ref…

Cryptographic key handling changed: public key is now supplied rather than derivedPotential reduction of key-mismatch risk if caller provides correct public keyNew null-pointer check added for static_public_key
1b3128a4by Ondřej Vejpustek+20−92 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(crypto): change order of parameters

This commit simply reorders the arguments of an internal function called dh() and updates every place that calls it. The actual math and security behavior are unchanged; it is a code cleanup with no security effect.

33a119eeby Ondřej Vejpustek+15−151 file
No security note in commit
Informational 15 AI analysisMessage 47 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(crypto): prefix enums

This commit simply renames two groups of internal status labels (called enums) in the Trezor firmware's cryptographic code. The old names like WAITING_FOR_REQUEST1 were shared between two different parts of the code, so the developer gave …

f1c74046by Ondřej Vejpustek+26−222 files
No security note in commit
Low 37 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

fix(crypto): prevent calling `memzero(NULL, ...)`

This commit fixes three places in the Trezor firmware's cryptographic code where a memory-clearing function could be called with a NULL pointer. In practice, passing NULL to memzero is harmless on Trezor's platform (it does nothing), but i…

NULL pointer passed to memory-zeroing helper in cryptographic codeUndefined behavior in C standard library contractDefensive hardening in Noise protocol implementation
0394e934by Ondřej Vejpustek+11−51 file
No security note in commit
Informational 18 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(crypto): return remote static key from `noise_xxpsk3_*_handle_*()`

This commit is a code cleanup (refactor) for the cryptographic handshake code used in Trezor devices. It changes how the other party's long-term public key is returned to the caller: instead of storing it inside an internal state structure…

Removal of long-term public key storage from internal handshake stateCaller-supplied output buffer for remote static public key reduces internal secret retentionError-path memzero of returned key material on failure
3ead1aa6by Ondřej Vejpustek+79−423 files
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(xtask): rename ProjectProfile to ProjectConfig

This commit is a simple rename from 'ProjectProfile' to 'ProjectConfig' in two Rust source files. It only changes variable names, struct names, and error messages. There is no change to program logic, security behavior, or how data is hand…

581b37bcby cepetr+18−182 files
No security note in commit
Informational 15 AI analysisMessage 47 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(xtask): introduce ResolvedBuildArgs

This commit is a straightforward internal code refactor in Trezor's build tooling. It introduces a new ResolvedBuildArgs structure that centralizes default values for command-line build options before they are used. There is no change to u…

c24d1be8by cepetr+99−295 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(xtask): make build args tristate

This commit is a straightforward internal refactor of the Trezor firmware build tool's command-line argument handling. It changes many on/off flags from plain booleans to optional booleans so they can explicitly be set to true, false, or l…

271e249aby cepetr+57−561 file
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(xtask): introduce build options

This commit is a straightforward internal code reorganization in Trezor's build tooling. It moves build-option definitions from one Rust source file to a new module and adds the ability to load those options from a configuration file. Ther…

75085e2aby cepetr+275−2007 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(xtask): introduce build presets

This commit is a developer tooling change for the Trezor firmware build system. It introduces 'build presets'—named configuration bundles stored in TOML files—so developers can select common build settings with a single command-line flag i…

eefe8f7fby cepetr+397−419 files
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(xtask): upgrade manifest.yaml for tf-tools 0.3.0

This commit is a routine update to a build-system manifest file used by Trezor's internal tooling. It reorganizes and re-labels feature flags (for example, moving options between 'Features', 'Debugging', and 'Signing' groups and simplifyin…

57b28b89by cepetr+86−1351 file
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(core): add tf-tools 0.3.1+ configuration file

This commit adds a single configuration file for a Trezor developer tool (a VS Code extension). It only points the tool to existing folders in the repository and contains no executable code, no secrets, and no changes to firmware behavior.…

e554f618by cepetr+8−01 file
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(xtask): rename ResolvedBuild to ResolvedBuildFeatures

This commit is a simple internal code cleanup: it renames a Rust data structure called ResolvedBuild to ResolvedBuildFeatures and updates the places that use it. There are no functional changes, no security fixes, and no changes to how the…

aaa2780bby cepetr+5−52 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

fix(core): fix up clippy warnings in storage.rs

This is a tiny code cleanup commit that replaces two calls to `ptr::null()` with Rust's `unwrap_or_default()` to silence automated Clippy lint warnings. It does not change what value is produced (still a null pointer when no salt is provid…

62354461by cepetr+2−21 file
No security note in commit
Informational 15 AI analysisMessage 47 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(xtask): simplify dependencies

This commit is a straightforward internal code cleanup in Trezor's build tooling. It moves a data structure and two helper methods from one Rust source file to another and updates callers accordingly. There is no change to user-facing beha…

6268349fby cepetr+9−193 files
No security note in commit
Informational 15 AI analysisMessage 47 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

docs: add xtask documentation

This commit only adds documentation. It updates the table of contents and adds a new markdown page plus a diagram explaining the project's 'xtask' build helper. No code, build scripts, or firmware logic was changed, so it cannot introduce …

4879dababy cepetr+296−03 files
No security note in commit
Informational 17 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(xtask): introduce project-toml build-options

This commit is a build-system refactoring for Trezor firmware. It moves the mapping of command-line build options to Rust/cargo features out of hard-coded Rust logic and into per-project TOML files. It also adds a small change so debug bui…

Build-option mapping now lives in project.toml files, increasing the attack surface for supply-chain/build-configuration tamperingMakefile change automatically enables debug-link for PYOPT=0 debug buildsValidation added to reject storage_insecure_testing_mode in production builds
d44de007by cepetr+681−40817 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

ci(core): fix nightly ARM emulator filename

This commit fixes a filename-renaming step in the project's automated nightly build pipeline. It ensures ARM64 emulator files get the correct name expected by another testing tool. There is no change to the actual Trezor firmware code, dev…

ab95f08fby Martin Milata+3−01 file
No security note in commit
Informational 12 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(vendor): avoid micropython submodule noise in git status

This is a routine housekeeping change to reduce clutter in Git's status output for a third-party component (the MicroPython submodule). There is no indication it changes any code that runs on the Trezor device or affects security.

06cab32bby Martin Milata+1−11 file
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 candidaterefactor(crypto): get rid of random_xor() functionby cepetr · 4bfcb7ef · Sep 24, 2025 · 3 filesMessage 62 · AdequateInformational 12Details
Commit message · cepetr

refactor(crypto): get rid of random_xor() function

[no changelog]

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
cryptography-sensitive path
AI analysis · Informational 12/100

This commit removes a helper function called random_xor() and replaces its use in the hardware wallet's PIN secret generation with a single, stronger random-number call. There is no direct evidence in the commit that this fixes an active security vulnerability; it reads as a code cleanup that simplifies how random bytes are produced before they are stored on the secure Optiga chip.

Security candidaterefactor(core): originate random number always from sec/rngby cepetr · 6f789233 · Sep 24, 2025 · 25 filesMessage 67 · AdequateLow 30Details
Commit message · cepetr

refactor(core): originate random number always from sec/rng

[no changelog]

67/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Names security-relevant behavior explicitly! No meaningful explanatory body
Why it was queued
entropy or randomnesscryptography-sensitive pathseed or entropy pathboot or update path
AI analysis · Low 30/100

This commit is a code cleanup that makes all random-number generation in the Trezor firmware core go through one dedicated secure path (sec/rng). It also moves the old insecure test-only random generator into a separate file so it is only used in emulators and tests, not in real hardware. The change reduces the risk that a real device accidentally uses a weak random source, but the commit itself does not claim to fix a specific active vulnerability.

Security candidatefeat(core): use tropic chip entropy in RNGby cepetr · 60966233 · Sep 24, 2025 · 32 filesMessage 62 · AdequateLow 34Details
Commit message · cepetr

feat(core): use tropic chip entropy in RNG

[no changelog]

62/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Names security-relevant behavior explicitly! No meaningful explanatory body
Why it was queued
entropy or randomnesscryptography-sensitive pathseed or entropy pathboot or update path
AI analysis · Low 34/100

This commit refactors how Trezor firmware generates random numbers. It adds a new 'strong' randomness path that mixes the device's hardware RNG with entropy from external secure chips (Optiga and/or Tropic), and routes all randomness through a common internal API. It is a feature/cleanup change, not a disclosed security fix, but it touches critical cryptography code and changes how secure chips are used.

Security candidatefix(prodtest): enable MCU TRNG in prodtestby cepetr · 7b44f137 · Sep 24, 2025 · 1 fileMessage 57 · ThinModerate 57Details
Commit message · cepetr

fix(prodtest): enable MCU TRNG in prodtest

[no changelog]

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
entropy or randomness
AI analysis · Moderate 57/100

This commit removes a flag called USE_INSECURE_PRNG from the production-test firmware build. That flag previously told the device to use a weak or insecure random number generator during factory testing. Removing it means the production-test firmware will now use the microcontroller's true hardware random number generator (TRNG) instead. Using a weak random source in a test environment could, in theory, affect security if any test keys, identifiers, or calibration data generated there were later reused or leaked, but this change is in a specialized factory-only firmware image, not the main wallet firmware users run.

Security candidatefix(core): libtropic overwrite bug workaroundby cepetr · e4882843 · Sep 24, 2025 · 1 fileMessage 57 · ThinModerate 55Details
Commit message · cepetr

fix(core): libtropic overwrite bug workaround

[no changelog]

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
seed or entropy path
AI analysis · Moderate 55/100

This commit adds a small workaround in the Trezor hardware wallet's random number generator code. The change allocates a slightly larger temporary buffer and only uses the inner portion, leaving unused 'bumper' bytes at the end. The commit message calls this a 'libtropic overwrite bug workaround,' suggesting an external library (libtropic) may write past the requested amount of random data. The patch does not fix the underlying library bug; it only pads the local buffer so any overflow lands in harmless scratch space rather than corrupting adjacent memory. Because this affects the cryptographic random number generator used for keys and secrets, a real overwrite could have security implications, but the diff itself does not show an actual vulnerability in Trezor code or prove the bug is exploitable.

Security candidatechore(core): update T3W1 embedded binariesby tychovrahe · bb3d3c1e · Sep 24, 2025 · 3 filesMessage 57 · ThinInformational 0Details
Commit message · tychovrahe

chore(core): update T3W1 embedded binaries

[no changelog]

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
boot or update path
AI analysis · Informational 0/100

This commit swaps in two new pre-built binary files for the T3W1 hardware model (a QA bootloader and a Bluetooth development firmware blob) and updates the corresponding SHA-256 hashes in a header file. The change is labeled as a routine chore with no changelog entry. There is no description of why the binaries changed, no source diff, and no security context provided, so it is impossible to tell from this commit alone whether the update fixes a bug, adds a feature, or changes security behavior.

Security candidatefeat(core/bootloader): use different wait message on BLE during fw installationby tychovrahe · fb39b0ca · Sep 24, 2025 · 13 filesMessage 62 · AdequateInformational 15Details
Commit message · tychovrahe

feat(core/bootloader): use different wait message on BLE during fw installation

[no changelog]

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
update trustcryptography-sensitive pathboot or update path
AI analysis · Informational 15/100

This commit only changes the on-screen message shown during firmware installation. If the update is happening over Bluetooth (BLE), the device now tells the user to keep the Trezor close to the host device; if it is happening over USB, it continues to tell the user not to disconnect the cable. There is no change to security logic, cryptography, or data handling.

Security candidaterefactor(core/eckhart): fuse passphrase and label keyboards to oneby Lukas Bielesch · 3bb9aa25 · Sep 24, 2025 · 11 filesMessage 85 · StrongInformational 15Details
Commit message · Lukas Bielesch

refactor(core/eckhart): fuse passphrase and label keyboards to one

- create one full-screen component `StringKeyboard`
- input component is now generic over the `StringInput` trait
- two implemented input types: `PassphraseInput` and `LabelInput`
[no changelog]

85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
access controlboot or update pathauthentication path
AI analysis · Informational 15/100

This commit is a code cleanup that merges two very similar on-screen keyboards in the Trezor firmware into a single shared component. It does not add new features, change security behavior, or fix a bug. The passphrase keyboard and the label keyboard now share one generic 'StringKeyboard' implementation, with separate input logic for passphrases and labels. Test helpers were updated to recognize the new component name.

Security candidatechore(core): Allow backup check only when the backup existsby Lukas Bielesch · 94cda445 · Sep 24, 2025 · 5 filesMessage 62 · AdequateLow 41Details
Commit message · Lukas Bielesch

chore(core): Allow backup check only when the backup exists

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
cryptography-sensitive path
AI analysis · Low 41/100

This commit tightens when a Trezor device lets the user run a 'backup check' (also called a dry-run recovery). Previously, the device allowed the check as long as it was initialized, even if the seed had never been backed up, was marked as not needing a backup, or the backup was unfinished. The change now blocks the backup-check menu item and the RecoveryDevice dry-run command when no real backup exists. This prevents a user from being misled into thinking an unbacked-up seed is safe, and stops a dry-run from being started in states where it has no meaningful purpose.

Security candidatechore(core/eckhart): update regulatory screenby Lukas Bielesch · 34757382 · Sep 23, 2025 · 6 filesMessage 57 · ThinInformational 15Details
Commit message · Lukas Bielesch

chore(core/eckhart): update regulatory screen

[no changelog]

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
boot or update path
AI analysis · Informational 15/100

This commit updates the legal/regulatory information screen shown on a Trezor hardware wallet. It adds Taiwan and an extra Japan certification icon, and restructures the code that decides which labels and icons appear. There is no security-relevant change—only on-screen text and images.

Security candidatechore(core): update T3W1 embedded binaries (dev)by tychovrahe · 09daf003 · Sep 23, 2025 · 3 filesMessage 57 · ThinInformational 11Details
Commit message · tychovrahe

chore(core): update T3W1 embedded binaries (dev)

[no changelog]

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
boot or update path
AI analysis · Informational 11/100

This commit updates two pre-built binary files for the T3W1 hardware model (a QA bootloader and a Bluetooth development firmware blob) and refreshes the recorded cryptographic hash for the new bootloader version. The change is labeled as a routine development chore with no changelog entry. There is no source-code diff, no description of a security fix, and no independent evidence that this update addresses a vulnerability.

Security candidaterefactor(eckhart): subtext marquee when too longby Ioan Bizău · c328be66 · Sep 23, 2025 · 2 filesMessage 57 · ThinInformational 15Details
Commit message · Ioan Bizău

refactor(eckhart): subtext marquee when too long

[no changelog]

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
boot or update path
AI analysis · Informational 15/100

This commit is a routine user-interface cleanup for the Trezor hardware wallet. It removes a manual 'marquee' flag and instead makes any long subtext automatically scroll sideways. There is no indication this change fixes or introduces a security problem.

Security candidatefeat(core/eckhart): thp app nameby Lukas Bielesch · 7f448deb · Sep 23, 2025 · 9 filesMessage 57 · ThinInformational 15Details
Commit message · Lukas Bielesch

feat(core/eckhart): thp app name

[no changelog]

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
cryptography-sensitive pathboot or update path
AI analysis · Informational 15/100

This commit is a routine user-interface feature update for the Trezor hardware wallet. It changes the device menu so that paired Bluetooth-style devices can display both a host name and an application name, and it adds a scrolling (marquee) text effect for long names. There is no security-relevant change, no vulnerability fix, and no indication of a security issue.

Security candidatefeat(core/eckhart): add host info screen to device menuby Lukas Bielesch · f91e1a3d · Sep 23, 2025 · 15 filesMessage 77 · AdequateInformational 15Details
Commit message · Lukas Bielesch

feat(core/eckhart): add host info screen to device menu

- add host info screen for each paired device
[no changelog]

77/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
cryptography-sensitive pathsigning or wallet pathboot or update path
AI analysis · Informational 15/100

This commit adds a new 'Host info' screen to the device menu on Trezor hardware wallets (Eckhart layout only). It lets users view the name and Bluetooth MAC address of each paired host device. There is no security vulnerability here—this is purely a user-interface feature.

Security candidatestyle(python): update types to pyright 1.1.404by matejcik · bfa3d82f · Sep 22, 2025 · 22 filesMessage 45 · ThinInformational 15Details
Commit message · matejcik

style(python): update types to pyright 1.1.404

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

This is a routine code-style and type-annotation cleanup in the Python part of the Trezor firmware repository. It updates type hints to satisfy a newer version of the pyright type checker, replaces some manual success checks with a helper, and makes a few small return-type changes (for example, returning bytes instead of bytearray from some transport reads). There is no indication of a security bug being fixed or introduced.

Security candidatestyle(core): update types to pyright 1.1.404by matejcik · c3e6e7a2 · Sep 22, 2025 · 197 filesMessage 60 · AdequateInformational 15Details
Commit message · matejcik

style(core): update types to pyright 1.1.404

Majority by volume is resolving the byte types promotion problem, which
pyright stopped ignoring

60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Why it was queued
cryptography-sensitive pathseed or entropy pathsigning or wallet pathboot or update pathauthentication pathparser or protocol path
AI analysis · Informational 15/100

This is a large code-style and type-annotation cleanup. It replaces concrete type hints like `bytes` with broader aliases such as `AnyBytes`, `AnyBuffer`, and `StrOrBytes`, and fixes a few minor type-checker warnings (for example adding an `assert ... is not None` and wrapping a value with `bytes(...)`). There are no runtime logic changes, no security fixes, and no behavior changes visible in the diff.

Security candidaterefactor(core/eckhart): device menu apiby Lukas Bielesch · a0a73898 · Sep 22, 2025 · 12 filesMessage 72 · AdequateInformational 15Details
Commit message · Lukas Bielesch

refactor(core/eckhart): device menu api

- logical and understandable function parameters and result names
[no changelog]

72/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
cryptography-sensitive pathboot or update path
AI analysis · Informational 15/100

This commit is a straightforward internal code cleanup for the Trezor hardware wallet's on-device menu system. It renames function parameters, result types, and message identifiers to be clearer and more consistent (for example, 'pin_code' becomes 'pin_enabled' and 'ScreenBrightness' becomes 'SetBrightness'). No security-sensitive behavior appears to change; the same menu options are still presented and handled the same way.

Security candidatefeat(core/eckhart): backup needed menu itemby Lukas Bielesch · 0c9c6e93 · Sep 22, 2025 · 12 filesMessage 72 · AdequateInformational 15Details
Commit message · Lukas Bielesch

feat(core/eckhart): backup needed menu item

- Add "Backup Device" option to Device Menu when backup is needed
[no changelog]

72/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
cryptography-sensitive pathboot or update path
AI analysis · Informational 15/100

This commit adds a new 'Backup Device' menu item to the Trezor Safe 5 (Eckhart layout) device menu when the device still needs a backup. It is a user-facing feature change, not a security fix or vulnerability. The change wires a new UI button through to the existing backup_device() flow, with no changes to security-critical logic, authentication, or access control.

Security candidatechore(core/eckhart): redesign backup needed menuby Lukas Bielesch · 437a8d61 · Sep 22, 2025 · 12 filesMessage 57 · ThinInformational 15Details
Commit message · Lukas Bielesch

chore(core/eckhart): redesign backup needed menu

[no changelog]

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
signing or wallet pathboot or update path
AI analysis · Informational 15/100

This commit is a user-interface redesign for the Trezor hardware wallet's 'backup needed' menu on the Eckhart model. It removes the ability to start a backup directly from the device menu and instead shows an informational screen telling the user to open Trezor Suite to create a backup. There is no security vulnerability here; it is a routine product change.

Security candidatefix(nordic/ble): fix stack overflow crashby tychovrahe · 9935c83c · Sep 22, 2025 · 2 filesMessage 62 · AdequateLow 42Details
Commit message · tychovrahe

fix(nordic/ble): fix stack overflow crash

[no changelog]

62/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Names security-relevant behavior explicitly! No meaningful explanatory body
Why it was queued
memory safety
AI analysis · Low 42/100

This commit fixes a Bluetooth Low Energy (BLE) crash in Trezor hardware wallets caused by a stack overflow. The patch does two things: it stops placing the device advertising name on the thread stack by using a static buffer instead, and it increases the BLE management thread's stack size from the default to 2048 bytes. The change reduces the chance that a long or specially crafted device name could corrupt nearby memory or crash the BLE subsystem. There is no vendor statement that this is a security vulnerability, and no independent researcher is credited.

Security candidatefix(legacy): always use Gwei for ETH fee ratesby Roman Zeyde · a5fb5adb · Sep 21, 2025 · 2 filesMessage 72 · AdequateLow 39Details
Commit message · Roman Zeyde

fix(legacy): always use Gwei for ETH fee rates

Similar to how it's done in core.

[no changelog]

72/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
boot or update path
AI analysis · Low 39/100

This commit changes how the older Trezor One (legacy) firmware displays Ethereum transaction fees on the device screen. Previously, small per-gas fee values could be shown in 'Wei' (the smallest Ethereum unit) instead of always using 'Gwei'. The fix makes per-gas fees consistently display in Gwei, matching the newer Trezor Core firmware. This is a user-interface consistency fix that could have minor security relevance because confusing fee units might lead a user to misread or misapprove a transaction fee, but the commit itself does not change any signing logic or cryptographic checks.

Security candidatechore: bump versionsby obrusvit · 9be734f6 · Sep 21, 2025 · 4 filesMessage 55 · ThinInformational 15Details
Commit message · obrusvit

chore: bump versions

- prodtest
- secmon
- bootloader
- nordic/trezor/trezor-ble

[no changelog]

55/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
update trustboot or update path
AI analysis · Informational 15/100

This commit only increases version numbers (patch levels) for four Trezor firmware components: the bootloader, production test tool, security monitor, and Bluetooth Low Energy module. There are no code logic changes, bug fixes, or security-related modifications in the diff itself.

Security candidatefix(core): don't request anim frames if text fitsby Ioan Bizău · f6d6787d · Sep 18, 2025 · 3 filesMessage 57 · ThinInformational 18Details
Commit message · Ioan Bizău

fix(core): don't request anim frames if text fits

[no changelog]

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
cryptography-sensitive path
AI analysis · Informational 18/100

This commit is a small UI cleanup for Trezor hardware wallets. It stops on-screen scrolling text (marquees) from requesting animation frames when the text already fits in its allotted space. This saves battery and avoids unnecessary screen redraws, but it does not fix a security vulnerability.

Security candidatechore(core/eckhart): update overflow arrow positionby Lukas Bielesch · b304af9e · Sep 18, 2025 · 2 filesMessage 100 · StrongInformational 15Details
Commit message · Lukas Bielesch

chore(core/eckhart): update overflow arrow position

- add test so that the overflow arrow doesn't overlap the text
[no changelog]

100/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Explains rationale or failure mode✓ Mentions testing or verification✓ Names security-relevant behavior explicitly
Why it was queued
memory safetyboot or update path
AI analysis · Informational 15/100

This commit is a minor visual polish change for the Trezor hardware wallet's user interface. It moves a small downward arrow icon slightly upward so it no longer overlaps menu text, and adds an automated test to ensure that spacing rule stays correct. There is no security-relevant change.

Security candidatechore(core/eckhart): do not disable partially hidden itemsby Lukas Bielesch · 4862cc9d · Sep 18, 2025 · 3 filesMessage 77 · AdequateLow 27Details
Commit message · Lukas Bielesch

chore(core/eckhart): do not disable partially hidden items

- rather limit their touch area not to overlap with the top component
[no changelog]

77/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
boot or update path
AI analysis · Low 27/100

This commit tweaks how menu buttons behave on the Trezor Safe 5 (Eckhart layout). Previously, any menu button that was not fully visible on screen was completely disabled, so you could not tap it. Now only buttons that are fully hidden are disabled; buttons that are partially visible remain active, but their touchable area is trimmed so it does not overlap the top header. This is a user-interface polish change, not a fix for a cryptographic or firmware security flaw. It could slightly reduce the chance of a user accidentally tapping a half-hidden button, but it does not introduce or remove a meaningful security vulnerability on its own.