TZ
← All projectsTrezor

Trezor firmware

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

BitcoinHardware walletsNormal
Repository coverage

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

921security candidates311second-pass queue2660AI analyses
329commits · 30 days
549commits · 60 days
1358commits · 180 days
2638commits · 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
478Strong · 80–100
1321Adequate · 60–79
863Thin · 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 Zeyde577181575272
PrisionMike945994273
Andrew Kozlik712470265
obrusvit21376213164
Jakub Janků22919182
Martin Pastyřík23823173
cepetr19682196059
Ioan Bizău23076230059
M1nd3r20772207071
Lukas Bielesch846784067
Martin Milata17446174063
Analysis record

Published AI watches

Last scanned 6 minutes ago

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 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
Repository ledger

Explore captured commits

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

Lower-priorityfix(core): fix updating battery errors in telemetryby tychovrahe · cf71a0b3 · Feb 19, 2026 · 1 fileMessage 62 · AdequateInformational 17Details
Commit message · tychovrahe

fix(core): fix updating battery errors in telemetry

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

This commit fixes how the Trezor hardware wallet reports battery-related warning flags to its internal telemetry system. Previously, the code reported the current state of several battery conditions on every check (for example, 'battery not connected right now'). After the fix, it only reports when the condition actually changes or is newly detected. This is a correctness bug in telemetry logging, not a vulnerability that could let an attacker steal funds or control the device.

Lower-priorityfeat(core/prodtest): allow reading and resetting telemetry data in prodtestby tychovrahe · 93da7f7d · Feb 19, 2026 · 7 filesMessage 62 · AdequateInformational 22Details
Commit message · tychovrahe

feat(core/prodtest): allow reading and resetting telemetry data in prodtest

[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 · Informational 22/100

This commit adds two new factory-test commands to Trezor's production-test firmware: one that reads battery telemetry (temperature extremes, error flags, cycle count) and one that resets that telemetry. The reset command is blocked on real production hardware unless the device is in manufacturing mode, but it is a no-op in the emulator. There is no direct evidence in the commit that this fixes a security vulnerability; it appears to be a feature addition for production testing.

Lower-priorityfix(core): fix BLE busy after restart with BLE turned offby tychovrahe · 5e17f2ac · Feb 19, 2026 · 2 filesMessage 62 · AdequateLow 29Details
Commit message · tychovrahe

fix(core): fix BLE busy after restart with BLE turned off

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 29/100

This commit fixes a bug in the Trezor hardware wallet where Bluetooth (BLE) communication could get stuck in a 'busy' state after a device restart if BLE was turned off. The fix moves the start of BLE communication outside the 'if BLE is enabled' block, so the BLE subsystem is always initialized even when the user has disabled Bluetooth. The changelog describes this as fixing a 'Connected Trezor is used by another application' bug. There is no direct evidence in the commit that this is a security vulnerability; it appears to be a usability/functional bug fix.

Lower-priorityfix(tests): brackets in IPv6by Ioan Bizău · 32289225 · Feb 19, 2026 · 1 fileMessage 67 · AdequateInformational 15Details
Commit message · Ioan Bizău

fix(tests): brackets in IPv6

[no changelog]

67/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100

This is a one-line test-reporting fix that adds the bracketed IPv6 form '[::1]' to a list of local hostnames. It only affects an internal UI test tool's button-disabling logic and has no security relevance.

AI review queuedbuild(deps): bump urllib3 in /tools/automatic_battery_testerby dependabot[bot] · 0edb6df4 · Feb 18, 2026 · 1 fileMessage 93 · StrongInformational 15Details
Commit message · dependabot[bot]

build(deps): bump urllib3 in /tools/automatic_battery_tester

Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.5.0 to 2.6.3.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.5.0...2.6.3)

---
updated-dependencies:
- dependency-name: urllib3
dependency-version: 2.6.3
dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

93/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
documentation-only discountautomated dependency-update discountsecond-pass: broader security terminology
AI analysis · Informational 15/100

This is a routine automated dependency update by Dependabot. It bumps the urllib3 library used inside a non-production battery-testing tool from version 2.5.0 to 2.6.3. There is no indication in the commit that this fixes a security issue, and the changed file is not part of the Trezor firmware that runs on devices or handles cryptocurrency.

AI review queuedchore(deps): bump pillow in /tools/automatic_battery_testerby dependabot[bot] · 56772ed1 · Feb 18, 2026 · 1 fileMessage 93 · StrongInformational 13Details
Commit message · dependabot[bot]

chore(deps): bump pillow in /tools/automatic_battery_tester

Bumps [pillow](https://github.com/python-pillow/Pillow) from 11.3.0 to 12.1.1.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/11.3.0...12.1.1)

---
updated-dependencies:
- dependency-name: pillow
dependency-version: 12.1.1
dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

93/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
documentation-only discountautomated dependency-update discountsecond-pass: broader security terminology
AI analysis · Informational 13/100

This is a routine dependency update generated by Dependabot. It upgrades the Python imaging library Pillow from version 11.3.0 to 12.1.1 inside a small internal tool used for battery testing. The change is a single line in a requirements file. There is no direct evidence in the commit that this fixes a specific security vulnerability, and the tool is not part of the Trezor firmware that runs on the hardware wallet itself.

Lower-prioritydocs: update PR templateby obrusvit · c3086cc5 · Feb 18, 2026 · 1 fileMessage 40 · ThinInformational 15Details
Commit message · obrusvit

docs: update PR template

[no changelog]

40/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit only updates the GitHub pull request template, which is a documentation/process file. It contains no firmware code changes and no security-relevant modifications.

Security candidatefeat(tron): clear sign Approve flowby PrisionMike · 328cd08d · Feb 18, 2026 · 8 filesMessage 57 · ThinLow 27Details
Commit message · PrisionMike

feat(tron): clear sign Approve flow

[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 pathsigning or wallet path
AI analysis · Low 27/100

This commit improves how Trezor devices display Tron token approval transactions on screen. Previously, only simple transfers were shown clearly; now the device also clearly shows when a user is approving someone else to spend their tokens, including unlimited approvals and revocations. This is a security-hardening change that helps users avoid accidentally signing risky approvals.

AI review queuedfeat(tron): Adding FreezeBalanceV2 contract logicby PrisionMike · 870f0db1 · Feb 17, 2026 · 7 filesMessage 72 · AdequateLow 32Details
Commit message · PrisionMike

feat(tron): Adding FreezeBalanceV2 contract logic

- Main logic for Staking Tron for energy or bandwidth.
- Scaffolding in preceding commit.

[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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 32/100

This commit adds support for a new Tron blockchain operation called FreezeBalanceV2, which lets users stake TRX tokens to gain Energy or Bandwidth. The change is a feature addition: it adds the contract type to the list of supported transactions, shows the user a confirmation screen with the staking amount and resource type, and handles a protocol quirk where the default resource value must be omitted when serializing the transaction. There is no direct evidence in the commit of a security vulnerability, but any new signing path deserves careful review.

AI review queuedfeat(tron): adding FreezeBalanceV2 message supportby PrisionMike · 11891384 · Feb 17, 2026 · 19 filesMessage 85 · StrongInformational 15Details
Commit message · PrisionMike

feat(tron): adding FreezeBalanceV2 message support

- Updated message definitions. Introduced new strings.
- Mostly generated code. Main changes in subsequent commit.

[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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit adds support for a new Tron blockchain operation called FreezeBalanceV2, which lets users stake TRX tokens to gain Energy or Bandwidth. The change only updates message definitions, generated code, test fixtures, and translation strings. There is no actual signing or user-interface logic in this commit, and nothing in the diff suggests a security vulnerability.

Lower-priorityrefactor(core): dma2d_wait() busy wait removalby bleska · c6bdec5b · Feb 17, 2026 · 1 fileMessage 80 · StrongLow 28Details
Commit message · bleska

refactor(core): dma2d_wait() busy wait removal

dma_transfer_in_progress boolean variable has been added for tracking of dma2d current state (transferring/idle). The variable is set after dma2d successful transfer start and cleared inside the dma2d_wait() function after the dma2d transfer has finished.

dma2d_wait() function has been refactored from HAL based busy waiting variant to a priodical polling of dma2d status flags (TC, TE, CE) and sleep/wake concept using the dma2d to wake MCU when such event occurs.

WFE (Wait For Event) instruction is used for MCU sleep entry. The "SCB.SCR.SEVONPEND" bit is used to enable MCU wake-up with NVIC disabled IRQs.

[no changelog]

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
AI analysis · Low 28/100

This commit refactors how the Trezor hardware wallet's graphics chip (DMA2D) waits for image-copying operations to finish. Previously the CPU burned power in a tight loop; now it puts the CPU to sleep and wakes it when the transfer completes. The change introduces new state tracking and error handling, but it also manipulates low-level CPU sleep/interrupt settings and manually clears locks and flags. There is no claim in the commit that this fixes a security bug, and no external advisory is provided. The main concern is whether the new wait logic could, in rare timing situations, leave the driver in an inconsistent state that affects screen rendering or stability, rather than a direct exploit path.

Lower-priorityrefactor(core): dma2d_wait() busy wait removalby bleska · 36811b96 · Feb 17, 2026 · 1 fileMessage 80 · StrongInformational 11Details
Commit message · bleska

refactor(core): dma2d_wait() busy wait removal

Removing the "KERNEL_MODE" guards as the whole file is guarded. Removing the dma2d_wait() function call as it's called twice in the near location.

[no changelog]

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
AI analysis · Informational 11/100

This commit is a small internal cleanup in the Trezor hardware wallet's graphics driver for STM32 microcontrollers. It removes some conditional compilation guards around DMA2D (a graphics accelerator) reset/clock code and deletes one redundant wait call before a copy operation. There is no claim in the commit that this fixes a security bug, and the changes do not obviously create or fix a vulnerability on their own.

Lower-priorityfix(core): adding SECMON_MONOTONIC_VERSION counter to DISC2by bleska · f45b187a · Feb 17, 2026 · 2 filesMessage 62 · AdequateLow 29Details
Commit message · bleska

fix(core): adding SECMON_MONOTONIC_VERSION counter to DISC2

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

This commit adds a new secure-monotonic version counter (SECMON_MONOTONIC_VERSION) to the Trezor Model Safe 3 (D002) hardware wallet's secret storage layout. Monotonic counters are used to prevent rollback attacks, where an attacker tries to downgrade the device to older, vulnerable firmware or bootloader. The change itself is a defensive hardening patch, not an exploitable vulnerability. However, because the commit is marked [no changelog] and provides minimal context, we cannot fully assess whether it fixes an incomplete earlier implementation or responds to a known security issue.

Security candidatefeat(core): add iterative data confirmation flowsby Roman Zeyde · 3fe21362 · Feb 17, 2026 · 4 filesMessage 57 · ThinInformational 14Details
Commit message · Roman Zeyde

feat(core): add iterative data confirmation flows

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

This commit adds new UI helper functions across four Trezor device themes to let users confirm long pieces of data (like transaction details or messages) in chunks, showing a prefix of bytes and asking whether to continue or confirm all at once. It is a user-interface feature, not a fix for a known security bug. There is no direct evidence in the commit or supplied references that it addresses a vulnerability.

Security candidatechore(core): hide empty "info" button on Bolt `confirm_with_info()`by Roman Zeyde · f939782a · Feb 17, 2026 · 7 filesMessage 85 · StrongInformational 19Details
Commit message · Roman Zeyde

chore(core): hide empty "info" button on Bolt `confirm_with_info()`

The return type is changed to `Gc<LayoutObj>`, since the `buttons` object may be `CancelConfirm` or `CancelInfoConfirm`.

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

This is a small user-interface cleanup for the Trezor hardware wallet. On one device style (Bolt), it hides an extra 'info' button when there is no label text for it, so users don't see a confusing blank button. The change also adjusts internal Rust return types so the different device layouts can return the same kind of object. There is no direct security fix here.

Security candidatechore(core): support subtitle on Delizia `should_show_more()`by Roman Zeyde · 9922ba0c · Feb 17, 2026 · 2 filesMessage 62 · AdequateInformational 15Details
Commit message · Roman Zeyde

chore(core): support subtitle on Delizia `should_show_more()`

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

This is a small user-interface feature patch that adds support for displaying an optional subtitle in a Trezor hardware wallet screen flow. It does not change security logic, cryptography, memory handling, or user confirmation behavior. There is no indication this commit fixes or introduces a security issue.

Security candidatefix(core): use `TEXT_MONO_DATA` for Delizia `confirm_with_info()`by Roman Zeyde · b75eb856 · Feb 17, 2026 · 1 fileMessage 62 · AdequateInformational 18Details
Commit message · Roman Zeyde

fix(core): use `TEXT_MONO_DATA` for Delizia `confirm_with_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
boot or update path
AI analysis · Informational 18/100

This is a one-line visual styling fix in the Trezor hardware wallet's user interface. It changes which font style is used when displaying data values in a specific confirmation screen (confirm_with_info) on the Delizia layout. The old style was the general monospace font; the new style is a monospace font variant intended specifically for data. There is no direct evidence this change fixes a security vulnerability, but using the wrong font style could theoretically make important data harder to read or distinguish from labels, slightly weakening the user's ability to verify what they are approving.

Security candidatechore(core): hide empty "info" button on Caesar `confirm_with_info()`by Roman Zeyde · 00b74ad0 · Feb 17, 2026 · 2 filesMessage 62 · AdequateInformational 15Details
Commit message · Roman Zeyde

chore(core): hide empty "info" button on Caesar `confirm_with_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
cryptography-sensitive path
AI analysis · Informational 15/100

This is a minor user-interface polish change for the Trezor hardware wallet's 'Caesar' screen layout. It simply hides an empty or placeholder 'info' button so users don't see a blank or confusing button during confirmations. There is no security-relevant behavior change.

Security candidatefix(crypto): Clean up stack in hdnode_deserialize().by Andrew Kozlik · 477cbb36 · Feb 16, 2026 · 1 fileMessage 62 · AdequateLow 44Details
Commit message · Andrew Kozlik

fix(crypto): Clean up stack in hdnode_deserialize().

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 44/100

This commit fixes a bug in the Trezor firmware's code that reads BIP32 extended keys (the xpub/xprv strings used by wallets). Previously, if the function encountered an invalid key string, it returned an error immediately without wiping a temporary 78-byte buffer that held decoded key material. That leftover data could remain on the device stack and potentially leak small pieces of secret key information to later code. The fix ensures the buffer is always cleared before the function returns, even on error paths.

Lower-prioritychore(ci): updates to pull/push crowdin workflows [no changelog]by Michal Kazda · c6a89c33 · Feb 16, 2026 · 2 filesMessage 77 · AdequateInformational 15Details
Commit message · Michal Kazda

chore(ci): updates to pull/push crowdin workflows
[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
documentation-only discount
AI analysis · Informational 15/100

This commit updates two GitHub Actions workflow files that manage translation files with Crowdin. It bumps the versions of some reusable actions (checkout, create GitHub app token, create pull request), adds input fields so the workflow caller can choose who is assigned and who reviews the resulting pull request, and reorders a couple of lines. There is no change to the Trezor firmware code that runs on the device, no change to cryptographic handling, and no indication of a security fix or vulnerability.

Lower-priorityfix(tests): preload first screenshot to avoid jumpby Ioan Bizău · 5abc3472 · Feb 16, 2026 · 2 filesMessage 84 · StrongInformational 15Details
Commit message · Ioan Bizău

fix(tests): preload first screenshot to avoid jump

[no changelog]

84/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Explains rationale or failure mode✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100

This commit changes only test-reporting helper code used to generate HTML pages and animated GIFs for UI test results. It preloads the first screenshot so the displayed image does not visibly jump when the page loads. There is no change to the Trezor firmware, wallet logic, cryptography, or any code that runs on the device.

Lower-prioritychore(tests): disable `update` button in CIby Ioan Bizău · 05687892 · Feb 16, 2026 · 1 fileMessage 67 · AdequateLow 25Details
Commit message · Ioan Bizău

chore(tests): disable `update` button in CI

[no changelog]

67/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Low 25/100

This commit disables an 'update' button in a test report web page when the page is not loaded from the user's own computer (localhost). The change is a hardening measure to prevent someone from accidentally or maliciously triggering test-result updates from a publicly hosted copy of the report. It is not a fix for a known exploit in shipped Trezor firmware.

Lower-priorityfeat(tests): keyboard shortcuts for markersby Ioan Bizău · 88bafce0 · Feb 16, 2026 · 3 filesMessage 67 · AdequateInformational 15Details
Commit message · Ioan Bizău

feat(tests): keyboard shortcuts for markers

[no changelog]

67/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100

This commit adds keyboard shortcuts to a Trezor internal test-reporting web page used by developers during UI testing. It lets reviewers press 'a', 's', or 'd' to mark a test result as OK, OK & UPDATE, or BAD, and improves the visual styling of the buttons. There is no security relevance: the tool is not shipped to end users, does not handle secrets, and does not change device firmware or wallet behavior.

Lower-priorityfix(core): PLL_DSI_NDIV wrongly set for DISC2by bleska · 4e197793 · Feb 16, 2026 · 3 filesMessage 80 · StrongInformational 16Details
Commit message · bleska

fix(core): PLL_DSI_NDIV wrongly set for DISC2

The PLL_DSI_NDIV macro has been redefined to be calculated out of the other PLL_DSI parameters and the HSE_VALUE.

[no changelog]

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
AI analysis · Informational 16/100

This commit fixes a display clock configuration for three Trezor hardware screen variants. The clock divider value was hard-coded to 62, but the formula shows it should be calculated from the external crystal frequency. On the DISC2 board the crystal runs at a different speed, so the hard-coded value produced the wrong DSI display clock. This is a hardware initialization bug that could cause display corruption or failure to light up the screen on DISC2; it is not a software vulnerability that an attacker can exploit.

Security candidatedocs: add context on `PropertyType`by Ioan Bizău · a1086698 · Feb 16, 2026 · 2 filesMessage 57 · ThinInformational 15Details
Commit message · Ioan Bizău

docs: add context on `PropertyType`

[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 only adds explanatory comments to two generated/mocked source files describing the history and future plans for two internal type aliases (`PropertyType` and `StrPropertyType`). No code behavior changes, no bug fixes, and no security-related modifications are present.