TZ
← All projectsTrezor

Trezor firmware

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

BitcoinHardware walletsNormal
Repository coverage

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

926security candidates315second-pass queue2669AI analyses
340commits · 30 days
557commits · 60 days
1349commits · 180 days
2621commits · 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
488Strong · 80–100
1332Adequate · 60–79
866Thin · 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.
tychovrahe292104292461
Roman Zeyde582183578272
PrisionMike945994273
Andrew Kozlik742572266
obrusvit21376213164
Jakub Janků22919182
Martin Pastyřík24823173
cepetr19782196059
Ioan Bizău23076230059
M1nd3r21173208071
Lukas Bielesch846784067
Martin Milata18146176063
Analysis record

Published AI watches

Last scanned 13 minutes ago

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

chore: remove libtropic's pin to develop branch

This commit removes a single line from the project's Git submodule configuration. It stops pinning the libtropic submodule to the 'develop' branch, meaning the project will now use the submodule's default branch (likely 'main' or 'master')…

8290eeefby M1nd3r+0−11 file
No security note in commit
Low 37 AI analysisMessage 70 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(core/embed): clear temporary buffer across Optiga/Tropic calls

This is a hardening change for the random number generator inside Trezor hardware wallets. It makes sure that temporary memory holding secret random values from the Optiga and Tropic security chips is wiped immediately after use, rather th…

Sensitive intermediate buffer not cleared promptlyPotential stale-buffer reuse across RNG source boundariesDefense-in-depth memory sanitization for secure-element entropy
01ebda93by Roman Zeyde+2−21 file
No security note in commit
Informational 15 AI analysisMessage 72 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

test(core/ethereum): EIP-7702 tuple nonce must be non-zero

This commit only changes test data and expected screen fingerprints for Trezor's Ethereum EIP-7702 signing tests. It replaces one test case that used a nonce of 0 with the same scenario using a nonce of 67, because the real-world protocol …

Test-only change with no production code modificationEIP-7702 tuple nonce constraint reflected in test dataExpected UI test hashes regenerated for renamed test vector
76cd2ed4by Roman Zeyde+28−282 files
No security note in commit
Informational 15 AI analysisMessage 72 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

test(core): drop an unused parameter of `make_payment_request()`

This commit only cleans up test code by removing an unused 'session' argument from a helper function used in automated tests. It does not change the actual Trezor firmware or any code that runs on the device, so it has no security impact f…

6dd19fdcby Roman Zeyde+0−188 files
No security note in commit
Informational 15 AI analysisMessage 85 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

build(core): propagate emulator feature from projects

This commit is a build-system cleanup for the Trezor firmware's Rust code. It changes how the 'emulator' feature flag is passed between different software components. The firmware project no longer supports the emulator feature (which make…

5642074cby matejcik+5−44 files
No security note in commit
Informational 15 AI analysisMessage 85 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

fix(build-docker): stop swallowing pub-bin copy errors

This change fixes a build script that was ignoring copy errors. Previously, the script would silently ignore any failure when copying public binary files, which could hide real problems. Now it only skips the copy when the file genuinely d…

Build script silently ignored copy failures before this fixFix removes unconditional `|| true` error suppressionKnown-benign missing files are now explicitly skipped with a file existence check
d829eda8by Andrew Kozlik+4−11 file
No security note in commit
Low 27 AI analysisMessage 93 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(core): digest EIP-1559/EIP-7702 magic without RLP encoding

This commit is a small internal cleanup in Trezor's Ethereum signing code. It changes how two special 'magic' bytes (the transaction type markers for newer Ethereum transaction formats) are fed into the cryptographic hash. Previously the c…

Refactor of cryptographic hashing path for Ethereum transaction signingRemoval of implicit assumption that RLP encodes small integers as single bytesChange affects EIP-1559 and EIP-7702 transaction type markers
2362bc6fby Roman Zeyde+6−32 files
No security note in commit
Informational 15 AI analysisMessage 98 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

test(core): test RLP self-encoding bytestrings

This commit only adds a new unit test to the Trezor firmware codebase. It verifies that very short Ethereum RLP-encoded byte strings and small positive integers encode to themselves, which is a known property of the RLP specification. No p…

41538733by Roman Zeyde+16−01 file
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

docs: fix links outside book root

This commit only fixes broken or awkward documentation links inside the project's user guide. It replaces relative links that point outside the documentation folder with internal placeholder files or direct GitHub URLs. There is no change …

0d8d4b1bby Martin Milata+14−810 files
No security note in commit
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
Repository ledger

Explore captured commits

Expand any commit for its author, full message, clarity score, changed files, triage signals, analysis, and source link.

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.

AI review queuedchore(core): backup needed info translationsby obrusvit · 671847de · Sep 25, 2025 · 7 filesMessage 57 · ThinInformational 15Details
Commit message · obrusvit

chore(core): backup needed info translations

[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 pathtranslation-only discountsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit only adds translated text strings for a new 'backup needed' message shown on the device home screen. It does not change any code logic, security checks, or cryptographic operations. The signatures.json file is updated to record the new translation bundle hash, which is a normal bookkeeping step for signed translation assets.

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.

Lower-priorityfix(core): restore driver setting after wake upby tychovrahe · 7fdd62ee · Sep 25, 2025 · 1 fileMessage 57 · ThinLow 45Details
Commit message · tychovrahe

fix(core): restore driver setting after wake up

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Low 45/100

This commit fixes a bug where a Trezor hardware wallet does not restore certain hardware settings after waking from sleep. Specifically, after the device wakes up, it now reapplies the screen rotation, haptic feedback, and RGB LED settings that the user had configured. Without this fix, those settings could be left in an unintended state following suspend/resume, which could confuse the user or subtly alter the device's behavior.

Lower-priorityfix(core/prodtest): Error handling in secrets-certdev-write.by Andrew Kozlik · 3e9c7530 · Sep 25, 2025 · 1 fileMessage 62 · AdequateLow 34Details
Commit message · Andrew Kozlik

fix(core/prodtest): Error handling in secrets-certdev-write.

[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
AI analysis · Low 34/100

This commit fixes a production-test tool in Trezor hardware wallets so that it now checks whether writing a device certificate to secure storage actually succeeded. Previously, the tool would silently continue and report success even if the write failed. This is a defensive hardening fix in a low-level manufacturing/QA utility, not a user-facing wallet feature.

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

AI review queuedfeat(core/prodtest): Check device certificate chain before storing it.by Andrew Kozlik · b4766692 · Sep 25, 2025 · 2 filesMessage 62 · AdequateLow 42Details
Commit message · Andrew Kozlik

feat(core/prodtest): Check device certificate chain before storing it.

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
second-pass: broader security terminology
AI analysis · Low 42/100

This commit moves a certificate-chain validation check so it runs before a device certificate is permanently stored in secure hardware, rather than after. Previously, an invalid device certificate could be written to the chip before the code noticed and rejected it. The change is in factory production-test tools (prodtest), not normal user wallet firmware, so it mainly affects manufacturing/ provisioning rather than end-user devices in the field.

Lower-priorityfeat(core/prodtest): Add trusted anchors for device certificates.by Andrew Kozlik · 00742eb2 · Sep 25, 2025 · 4 filesMessage 62 · AdequateLow 35Details
Commit message · Andrew Kozlik

feat(core/prodtest): Add trusted anchors for device certificates.

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Low 35/100

This commit updates the Trezor production-test firmware to recognize and trust a new set of manufacturer root public keys when validating device certificates. It also refactors where those keys are stored so both certificate checking and the secure provisioning channel use the same key list. The change is a feature addition, not a fix for a known vulnerability, and it only affects the factory/prodtest firmware, not the end-user wallet firmware.

Lower-prioritychore(core): move `paired_cache` to `trezor.wire.thp`by Roman Zeyde · b9411a6b · Sep 25, 2025 · 6 filesMessage 77 · AdequateInformational 15Details
Commit message · Roman Zeyde

chore(core): move `paired_cache` to `trezor.wire.thp`

Also, log `ThpPairedCache`-related events.

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

This commit is a routine code cleanup: it moves a small helper module that stores Bluetooth pairing information from one folder to another and adds extra debug logging. There is no change to how the device protects secrets, pairs with phones, or handles untrusted input. It is not a security fix.

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.

Lower-prioritychore(core): libtropic - modify `tropic01` to adhere to `libtropic_port` API [no changelog]by M1nd3r · f54eb927 · Sep 25, 2025 · 1 fileMessage 77 · AdequateInformational 15Details
Commit message · M1nd3r

chore(core): libtropic - modify `tropic01` to adhere to `libtropic_port` API
[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
AI analysis · Informational 15/100

This is a routine code cleanup in Trezor firmware. It updates a hardware driver for the Tropic01 secure chip so its function signatures match a newer version of the underlying library API. The actual behavior of the code is unchanged; only the names of internal data structures were updated. There is no indication this fixes or introduces a security problem.

Lower-prioritychore(core): libtropic - rename timeout to timeout_ms [no changelog]by M1nd3r · 8b6e005a · Sep 25, 2025 · 1 fileMessage 77 · AdequateInformational 15Details
Commit message · M1nd3r

chore(core): libtropic - rename timeout to timeout_ms
[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
AI analysis · Informational 15/100

This is a simple variable rename from 'timeout' to 'timeout_ms' in a single function. It does not change any behavior, logic, or security properties of the code. There is no security issue here.

Lower-prioritychore(prodtest): libtropic - remove `max_len` from `lt_get_info_riscv_fw_ver()` and `lt_get_info_spect_fw_ver()` [no changelog]by M1nd3r · 58e63d89 · Sep 25, 2025 · 1 fileMessage 85 · StrongInformational 11Details
Commit message · M1nd3r

chore(prodtest): libtropic - remove `max_len` from `lt_get_info_riscv_fw_ver()` and `lt_get_info_spect_fw_ver()`
[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
AI analysis · Informational 11/100

This is a small code cleanup in Trezor's internal production-testing tool. It removes an unused `max_len` argument from two helper functions that read firmware version numbers from a Tropic chip during manufacturing tests. There is no indication this change fixes a security bug or introduces one; it simply follows an updated library API.

Lower-prioritychore(vendor): update libtropic to 1.0.0 [no changelog]by M1nd3r · 67bd342c · Sep 25, 2025 · 1 fileMessage 77 · AdequateInformational 2Details
Commit message · M1nd3r

chore(vendor): update libtropic to 1.0.0
[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
AI analysis · Informational 2/100

This commit updates a third-party vendor library called libtropic from one version to version 1.0.0. The actual code changes are not visible because only a Git submodule reference was updated. There is no information in the commit message or supplied materials indicating this is a security fix or that it addresses any vulnerability.

Lower-priorityfeat(prodtest): restrict access to 64 MAC-and-destroy slotsby Ondřej Vejpustek · dc186216 · Sep 25, 2025 · 2 filesMessage 62 · AdequateLow 42Details
Commit message · Ondřej Vejpustek

feat(prodtest): restrict access to 64 MAC-and-destroy slots

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Low 42/100

This commit tightens access permissions in the Trezor production-test firmware for a secure chip feature called 'MAC-and-destroy' slots. It removes Pairing Key 1's ability to use the first 64 of these one-time slots, leaving only Pairing Key 2 (and in some configurations Pairing Key 3) with access. MAC-and-destroy slots are designed to be permanently destroyed after use, so restricting who can reach them reduces the risk that a less-trusted key could waste or misuse them during manufacturing tests.

Lower-prioritystyle(prodtest): don't wrap linesby Ondřej Vejpustek · 49500136 · Sep 25, 2025 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · Ondřej Vejpustek

style(prodtest): don't wrap lines

[no changelog]

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

This is a purely cosmetic code-style change. It removes line breaks inside long C expressions so each expression fits on a single line. The actual values and logic are unchanged, so it has no security effect.

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.

Lower-priorityfix(core): don't raise `FirmwareError("button request ack pending")` on THP debug buildsby Roman Zeyde · d009962d · Sep 24, 2025 · 1 fileMessage 89 · StrongLow 35Details
Commit message · Roman Zeyde

fix(core): don't raise `FirmwareError("button request ack pending")` on THP debug builds

Otherwise, it may cause THP channel to desync due to double write.

[no changelog]

89/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
AI analysis · Low 35/100

This commit changes how a Trezor hardware wallet handles an internal error condition during user interactions. In debug builds using the new THP (Trezor Host Protocol) communication channel, the device no longer crashes with a 'FirmwareError' when a button-acknowledgment state is still pending. Instead, it logs the issue and continues. The old behavior could cause the THP channel to become desynchronized because the error path might write to the channel twice. The fix prevents a possible communication desync but deliberately suppresses a previously fatal internal-consistency check.

Lower-priorityfix(core): make sure to signal `ButtonRequest` handler to exitby Roman Zeyde · 10d0dbb5 · Sep 24, 2025 · 1 fileMessage 89 · StrongLow 44Details
Commit message · Roman Zeyde

fix(core): make sure to signal `ButtonRequest` handler to exit

`button_request_box` value should be replaced to `None`,
otherwise `button_request_task` will not exit.

[no changelog]

89/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
AI analysis · Low 44/100

This Trezor firmware fix ensures a background task that handles on-device button prompts is properly shut down when a screen layout finishes. Previously, the signal meant to stop that task might not be delivered, leaving the task running. The patch uses a 'replace' flag to guarantee the stop signal is placed in the queue. A stuck button-request task could cause the device and host software to get out of sync, potentially leading to confusing UI states or unexpected behavior during wallet operations.

Lower-prioritychore(tests): update fixturesby Ioan Bizău · 6c389ac5 · Sep 24, 2025 · 3 filesMessage 57 · ThinInformational 15Details
Commit message · Ioan Bizău

chore(tests): update fixtures

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100

This commit only updates automated test files. It renames a test helper class from InputFlowNewCodeCancel to InputFlowNewWipeCodeCancel and adds expected screen-image hashes for a wipe-code cancellation test across many languages and device models. No firmware source code is changed, so this cannot affect real device security.