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 queue1971AI 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.
tychovrahe292104194361
Roman Zeyde572177416271
PrisionMike945990273
Andrew Kozlik712450265
Jakub Janků22919182
Martin Pastyřík23820173
cepetr19682143059
Ioan Bizău23076177059
obrusvit21376145064
M1nd3r20671157071
Lukas Bielesch846771067
Martin Milata17446150063
Analysis record

Published AI watches

Last scanned 3 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 candidatefeat(core/tests): device menu click testsby Lukas Bielesch · 45cc5ffb · Oct 3, 2025 · 23 filesMessage 82 · StrongInformational 20Details
Commit message · Lukas Bielesch

feat(core/tests): device menu click tests

- move keyboard shared code to common
[no changelog]

82/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Mentions testing or verification
Why it was queued
cryptography-sensitive pathboot or update pathauthentication path
AI analysis · Informational 20/100

This commit is almost entirely a test-suite expansion for the Trezor Safe 7 device menu. It adds automated click tests for settings like auto-lock, device label, LED, haptic feedback, brightness, backup checks, notifications, menu traversal, and device wipe. A small amount of production code changed: a new 'led' field was added to the Features protobuf message so the device can report RGB LED support, and a few UI debug-trace strings were improved to make automated testing easier. There is no obvious security vulnerability in the diff.

Security candidatefeat(core/eckhart): no virtual locking btn at homeby obrusvit · 29b0d472 · Oct 2, 2025 · 1 fileMessage 62 · AdequateLow 25Details
Commit message · obrusvit

feat(core/eckhart): no virtual locking btn at home

[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
boot or update path
AI analysis · Low 25/100

This commit removes a 'virtual lock button' from the Trezor hardware wallet's home screen on the Eckhart layout. Previously, holding a finger anywhere on the home screen (except the bottom action bar) for a set duration could lock the device. Now that gesture is gone. The change is described as a feature tweak, not a security fix, and no security relevance is disclosed in the commit or supplied references.

Security candidatechore: bump versionsby obrusvit · e6be3c1c · Oct 2, 2025 · 13 filesMessage 40 · ThinInformational 15Details
Commit message · obrusvit

chore: bump versions

[no changelog]

40/100 · ThinMessage clarity
✓ Subject identifies a change✓ 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 only increases version numbers across Trezor firmware components and translation files. There are no code changes that fix or introduce any security behavior, so it has no direct security relevance on its own.

Security candidaterefactor(core): refactor io/ble interfaceby tychovrahe · 2c2e7052 · Oct 2, 2025 · 16 filesMessage 57 · ThinLow 28Details
Commit message · tychovrahe

refactor(core): refactor io/ble interface

[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 · Low 28/100

This commit is a code cleanup that rewrites how the Trezor firmware talks to its Bluetooth chip. Instead of sending one big generic 'command' packet that could describe many different actions, the code now uses a separate, specific function for each Bluetooth action (such as turn on, pair, disconnect, erase bonds). The change also tightens the security boundary between the app and the kernel by validating the pairing name and pairing code directly, rather than trusting a caller-built command structure. There is no direct evidence in the commit that this fixes an active security bug, but the old design made it easier for a caller to request unintended operations by crafting command data, and the new design removes that entire class of mistakes.

Security candidatefix(python): uncache transport when waiting for the bootloaderby Roman Zeyde · ded39508 · Oct 2, 2025 · 2 filesMessage 62 · AdequateInformational 23Details
Commit message · Roman Zeyde

fix(python): uncache transport when waiting for the bootloader

[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 trustboot or update path
AI analysis · Informational 23/100

This is a small bug-fix change in the Trezor Python command-line tools. It fixes a situation where the tool would keep using an old cached connection to the device while waiting for the device to reboot into bootloader mode. Now it clears that cached connection and tries to reconnect. There is no direct evidence this is a security vulnerability; it appears to be a reliability/usability fix for firmware updates.

Security candidatefeat(core/eckhart): LED effect in HoldToConfirmby obrusvit · c123574c · Oct 1, 2025 · 4 filesMessage 57 · ThinInformational 17Details
Commit message · obrusvit

feat(core/eckhart): LED effect in HoldToConfirm

[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 17/100

This commit adds a visual LED effect and a short 'finalized' animation to the hold-to-confirm action on Trezor's newer Eckhart-style user interface. It changes when the device reports a confirmation: instead of confirming the instant the user releases the button, the device now waits for a brief 500 ms animation to finish. During that animation it ignores further button input and lights the RGB LED in a color matching the on-screen confirmation. There is no indication this fixes a security bug; it appears to be a user-experience and visual-feedback feature.

Security candidatefix(core): cache host and app name also at credential-based connectionby Roman Zeyde · 4e0467bc · Sep 30, 2025 · 4 filesMessage 77 · AdequateLow 35Details
Commit message · Roman Zeyde

fix(core): cache host and app name also at credential-based connection

If the first pairing is done over USB, there won't be a MAC address so
the cache won't be populated.

[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
credential or privilege state
AI analysis · Low 35/100

This commit fixes a bug in Trezor's T3W1 hardware wallet where, if a user first paired their device over USB instead of Bluetooth, the device failed to remember the computer/app name for later use. The fix makes sure the host and app name are saved during credential-based pairing even when there is no Bluetooth MAC address. There is no direct evidence this is a security vulnerability, but missing pairing metadata could weaken future security checks or user trust.

Security candidatefix(core): exit pairing screen when an already bonded device connectsby tychovrahe · c156ea10 · Sep 30, 2025 · 8 filesMessage 62 · AdequateLow 35Details
Commit message · tychovrahe

fix(core): exit pairing screen when an already bonded device connects

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

This update fixes a Bluetooth pairing screen bug in Trezor hardware wallets. Previously, if an already-paired (bonded) host device connected while the wallet was showing a pairing screen, the wallet did not automatically exit that screen. The fix adds a new internal event, 'pairing not needed,' so the user interface can close the pairing screen in that situation. The change is a user-experience and minor reliability fix; the commit itself does not describe a security vulnerability.

Security candidatefix(core): fix integer overflow in storageby tychovrahe · 56755da9 · Sep 30, 2025 · 1 fileMessage 62 · AdequateModerate 58Details
Commit message · tychovrahe

fix(core): fix integer overflow in storage

[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 · Moderate 58/100

This commit fixes a potential integer overflow in the Trezor hardware wallet's storage code. A variable that holds a flash memory offset was declared as a 16-bit unsigned integer (uint16_t), which could overflow if the sector offset plus the amount of data already written exceeds 65,535. The fix widens that variable to a 32-bit unsigned integer (uint32_t), giving it enough room for larger flash addresses. If exploited, this kind of overflow could corrupt where data is written in the device's storage, potentially leading to data loss or unexpected behavior.

Security candidate chore(core/eckhart): redesign connected itemby Lukas Bielesch · 2dd79de7 · Sep 29, 2025 · 10 filesMessage 57 · ThinInformational 15Details
Commit message · Lukas Bielesch

chore(core/eckhart): redesign connected item

- add app name to host info screen

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 routine user-interface redesign for the Trezor hardware wallet (specifically the T3W1/Eckhart layout). It moves the name of the connected app from the Bluetooth connection button onto a separate 'Host Info' screen, and adjusts how long text is clipped in buttons. There is no security-relevant change here.

Security candidatechore: update embedded binaries for T3W1by obrusvit · ff1c4a31 · Sep 26, 2025 · 5 filesMessage 57 · ThinInformational 3Details
Commit message · obrusvit

chore: update embedded binaries for T3W1

[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 3/100

This commit swaps out several pre-built binary files for the T3W1 hardware model: a newer bootloader version, a security monitor binary, and a Bluetooth firmware binary. The change is described as a routine chore with no changelog entry. Because the files are binary blobs, the actual code changes inside them cannot be inspected from the diff alone, and there is no stated security relevance.

Security candidatefeat(core/eckhart): waiting for host FwUI functionby Lukas Bielesch · ca141456 · Sep 26, 2025 · 16 filesMessage 77 · AdequateInformational 20Details
Commit message · Lukas Bielesch

feat(core/eckhart): waiting for host FwUI function

- last step in the BLE pairing flow
- new ble handler mode `WaitingForPairingCompletion`
[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 20/100

This commit adds a new on-screen step to the Bluetooth pairing flow on Trezor hardware wallets. After the user confirms a pairing code, the device now shows a 'Waiting for host...' screen and waits for the host computer or phone to finish the pairing. It is a normal user-interface feature, not a fix for a known security bug.

Security candidatefix(core): clippy warningby Lukas Bielesch · a779f46b · Sep 26, 2025 · 1 fileMessage 47 · ThinInformational 15Details
Commit message · Lukas Bielesch

fix(core): clippy warning

[no changelog]

47/100 · ThinMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
boot or update path
AI analysis · Informational 15/100

This is a one-line Rust code cleanup that removes two unused color imports (GREY_LIGHT and an extra comma) to silence a Clippy compiler warning. It does not change any program behavior, user interface, or security logic.

Security candidatechore(core): update T3W1 embedded bootloader (dev)by tychovrahe · d4cc6ad3 · Sep 26, 2025 · 2 filesMessage 62 · AdequateInformational 3Details
Commit message · tychovrahe

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

[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 trustboot or update path
AI analysis · Informational 3/100

This commit swaps in a new pre-built bootloader binary for the T3W1 hardware model used in QA/testing, and updates the matching cryptographic hashes that the firmware uses to recognize a valid bootloader. The actual source-code changes inside the bootloader are not shown, and the commit message gives no security explanation. On its own, this looks like a routine firmware housekeeping update, not a fix for a known security bug.

Security candidatefeat(core): add notifications device wipe & unpairingby tychovrahe · 21a74f0e · Sep 25, 2025 · 7 filesMessage 62 · AdequateInformational 20Details
Commit message · tychovrahe

feat(core): add notifications device wipe & unpairing

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

This commit adds informational notifications when a Trezor device is wiped or a Bluetooth pairing is removed. It does not change who can perform these actions or how they are authorized. The wipe/unpair logic itself already existed; the change only tells connected software that the event is happening. There is no obvious security vulnerability here.

Security candidatefeat(core): add notifications on important state changesby tychovrahe · b5982c75 · Sep 25, 2025 · 8 filesMessage 62 · AdequateInformational 19Details
Commit message · tychovrahe

feat(core): add notifications on important state changes

[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
authentication path
AI analysis · Informational 19/100

This commit adds new notification messages that the Trezor device sends when certain things happen, such as locking/unlocking, changing settings, changing the PIN, or disconnecting from Bluetooth. It is a feature addition, not a fix for a known security bug. The change itself does not appear to introduce a vulnerability, though it slightly increases the amount of internal state information broadcast to other parts of the system.

Security candidatefeat(core/bootloader): signal firmware corrupted in featuresby tychovrahe · e1d8700e · Sep 25, 2025 · 19 filesMessage 62 · AdequateInformational 19Details
Commit message · tychovrahe

feat(core/bootloader): signal firmware corrupted in features

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

This commit adds a new flag called firmware_corrupted to the device's Features message, which is sent to the host computer when the Trezor is in bootloader mode. Previously, the existing firmware_present flag only told the host whether any firmware was loaded, but its comment said 'valid firmware loaded.' The change makes the bootloader explicitly report whether the loaded firmware is corrupted, and it updates the comment on firmware_present to clarify it just means firmware is loaded. This is an informational/UX improvement, not a fix for a vulnerability in the device itself.

Security candidaterefactor(core/bootloader): simplify function headers by using one struct with all needed FW infoby tychovrahe · ea5bd4b8 · Sep 25, 2025 · 11 filesMessage 62 · AdequateInformational 15Details
Commit message · tychovrahe

refactor(core/bootloader): simplify function headers by using one struct with all needed FW info

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

This commit is a straightforward code cleanup in the Trezor bootloader. It bundles three pieces of firmware information (vendor header, image header, and whether firmware is present) into a single struct and passes that struct around instead of three separate arguments. There is no change to security logic, no bug fix, and no new feature.

Security candidatefix(core/bootloader): timeout FW installation when the next message doesn't arrive in timeby tychovrahe · 3941195a · Sep 25, 2025 · 1 fileMessage 62 · AdequateLow 49Details
Commit message · tychovrahe

fix(core/bootloader): timeout FW installation when the next message doesn't arrive in time

[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 trustboot or update path
AI analysis · Low 49/100

This commit adds a 10-second timeout to the Trezor bootloader's firmware update process. Previously, if the host computer stopped sending firmware pieces during an update, the bootloader could wait forever in a special update mode. The fix makes the device give up and show a failure screen if no next message arrives within 10 seconds. This is a hardening change: it reduces the window during which a device is stuck in a firmware-update state, which could matter if an attacker has physical or local access, but the commit itself does not describe a specific attack or vulnerability.

Security candidatechore(core): make `host_name` & `app_name` required also in `ThpCredentialMetadata`by Roman Zeyde · 5bab2029 · Sep 25, 2025 · 7 filesMessage 62 · AdequateLow 28Details
Commit message · Roman Zeyde

chore(core): make `host_name` & `app_name` required also in `ThpCredentialMetadata`

[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
credential or privilege state
AI analysis · Low 28/100

This commit tightens a data structure used during Trezor's new host pairing protocol (THP). It makes two text fields—host_name and app_name—mandatory instead of optional, and adds runtime checks that they are present before creating a pairing credential. On its own this is a defensive hardening change, not a fix for an active vulnerability. It reduces the chance that a paired host could be stored or shown to the user without an identifiable name, which could help prevent social-engineering or UI-confusion attacks.

Security candidatechore(core): libtropic - remove obsolete bug workaround [no changelog]by M1nd3r · f52720ee · Sep 25, 2025 · 1 fileMessage 77 · AdequateInformational 12Details
Commit message · M1nd3r

chore(core): libtropic - remove obsolete bug workaround
[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
seed or entropy path
AI analysis · Informational 12/100

This commit removes a small, unexplained workaround in the hardware wallet's random number generator code. The workaround previously added 4 extra bytes to a temporary buffer when generating randomness. The change makes the code cleaner and slightly more correct, but there is no indication it fixes an active security bug. It appears to be routine cleanup.

Security candidatefeat(core/eckhart): widen border shapeby obrusvit · 46cb5349 · Sep 25, 2025 · 18 filesMessage 100 · StrongInformational 15Details
Commit message · obrusvit

feat(core/eckhart): widen border shape

- instead of drawing the border 1px towards center, make the border 1px
wider and draw it at the exact edges
- this is to prevent underlying shapes from peeking at the sides
- effectively reverts
https://github.com/trezor/trezor-firmware/pull/5510

[no changelog]

100/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Links an issue, advisory, or supporting reference
Why it was queued
boot or update path
AI analysis · Informational 15/100

This commit is a visual design tweak for the Trezor hardware wallet's screen border. It changes how the decorative border is drawn so it sits exactly at the screen edges instead of being inset by one pixel. There is no security relevance: no cryptography, authentication, memory handling, or user-confirmation logic is changed.

Security candidatefix(core): invalidate THP credential authentication key on `Forget all`by Roman Zeyde · 7e094e35 · Sep 25, 2025 · 1 fileMessage 67 · AdequateModerate 58Details
Commit message · Roman Zeyde

fix(core): invalidate THP credential authentication key on `Forget all`

[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
access controldefensive validationcredential or privilege state
AI analysis · Moderate 58/100

This commit fixes a security bug in the Trezor hardware wallet's Bluetooth handling. When a user chose 'Forget all' Bluetooth pairings, the device was not clearing a special key used for a feature called THP (Trezor Host Protocol) credential authentication. As a result, after reconnecting, the device might trust the other side without asking the user to confirm again. The fix adds a call to invalidate that key whenever all Bluetooth pairings are erased.

Security candidaterefactor(core): remove useless change_code paramsby Ioan Bizău · 0b2124a1 · Sep 24, 2025 · 15 filesMessage 57 · ThinInformational 20Details
Commit message · Ioan Bizău

refactor(core): remove useless change_code params

[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 pathauthentication path
AI analysis · Informational 20/100

This commit is a code cleanup: it removes unused title, description, and information parameters from the PIN/wipe-code setup confirmation flow and lets each device layout pick the correct text strings internally based on whether the user is setting a PIN or a wipe code. There is no obvious security bug introduced; it is a refactoring change with a [no changelog] tag.

Security candidatefix(core): temporary fix for RSOD triggered by rng_fill_buffer_strongby cepetr · 2563de4d · Sep 24, 2025 · 1 fileMessage 42 · ThinLow 44Details
Commit message · cepetr

fix(core): temporary fix for RSOD triggered by rng_fill_buffer_strong

[no changelog]

42/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body! Contains work-in-progress language
Why it was queued
entropy or randomnessseed or entropy path
AI analysis · Low 44/100

This commit is a temporary hotfix that disables the Tropic secure-element randomness source in non-production builds to stop a Red Screen of Death (RSOD) crash triggered by the function rng_fill_buffer_strong. The change wraps the Tropic random-buffer mixing step in a PRODUCTION preprocessor guard, so it only runs in production firmware. In non-production/debug builds, the function will fall back to whatever other entropy sources remain (likely the STM32 hardware RNG plus optional optiga mixing). The commit message explicitly calls this a temporary fix and says to delete it later, so it is a workaround rather than a root-cause fix. There is no direct evidence in the commit that this is exploitable, but any change to cryptographic randomness generation in a hardware wallet is a security-sensitive signal.