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 queue1655AI 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.
tychovrahe292104163261
PrisionMike945990273
Andrew Kozlik712444265
Roman Zeyde572177315171
Jakub Janků22919182
Martin Pastyřík23814173
cepetr19682123059
Ioan Bizău23076156059
obrusvit21376126064
M1nd3r20671128071
Lukas Bielesch846771067
Martin Milata17446126063
Analysis record

Published AI watches

Last scanned 1 minute 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 candidatechore: cannot have both info and external_menuby Ioan Bizău · 0f9f4808 · Nov 19, 2025 · 3 filesMessage 80 · StrongLow 30Details
Commit message · Ioan Bizău

chore: cannot have both info and external_menu

* we already have this assertion in Eckhart, but it somehow slipped from Delizia
* also, `debug_assert!` is currently not used so it should really be a `NotImplementedError`

[no changelog]

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
boot or update path
AI analysis · Low 30/100

This commit is a small defensive cleanup in Trezor's user-interface code. It adds a runtime check that prevents two UI features—'info' and 'external_menu'—from being used at the same time, because that combination is not implemented. It also removes two places in Python code that accidentally passed both flags together. The change makes a previously silent debug-only assertion into an explicit error, which helps avoid unexpected UI behavior rather than fixing an active security vulnerability.

Security candidatechore(tests,eckhart): confirm_output menusby Ioan Bizău · 262152c5 · Nov 19, 2025 · 2 filesMessage 67 · AdequateInformational 15Details
Commit message · Ioan Bizău

chore(tests,eckhart): confirm_output menus

[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
Why it was queued
boot or update path
AI analysis · Informational 15/100

This commit is a test-only/internal UI change for the Trezor firmware. It adds a flag called has_flow_menu to a screen component and marks three screens in the confirm_output flow with that flag. The flag is only used to expose menu state to automated tests/debuglink, and does not change user-facing behavior or fix any security issue.

Security candidatefix(core): fix secmon/bootloader paddingby cepetr · f69f8ad9 · Nov 19, 2025 · 2 filesMessage 57 · ThinLow 41Details
Commit message · cepetr

fix(core): fix secmon/bootloader padding

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

This commit adjusts linker scripts that control how the Trezor hardware wallet's bootloader and security monitor (secmon) binary images are laid out in flash memory. It reduces alignment padding from 512 bytes to 4 bytes and changes how unused space at the end of each image is filled with zeros. The change appears to be a correctness fix for image padding rather than a fix for an exploitable memory corruption bug, but the exact security implications are not stated by the vendor.

Security candidatefix(storage): unify number of pin attemps to 10 on devices using Tropicby cepetr · 23be710f · Nov 19, 2025 · 1 fileMessage 62 · AdequateLow 33Details
Commit message · cepetr

fix(storage): unify number of pin attemps to 10 on devices using Tropic

[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
access control
AI analysis · Low 33/100

This commit changes how many wrong PIN attempts are allowed on Trezor hardware wallets that use a component called Tropic. Previously, devices using both Tropic and Optiga security chips were limited to 10 PIN attempts, while devices using only Tropic were allowed 16. The change makes all Tropic-based devices use 10 attempts, matching the stricter limit. This is a defensive consistency fix, not an active vulnerability patch, but it reduces the attack surface for PIN brute-force attempts on Tropic-only devices.

Security candidaterefactor(core/rust/crypto): unify init_ctx macrosby Martin Milata · c2b6571f · Nov 18, 2025 · 6 filesMessage 72 · AdequateInformational 15Details
Commit message · Martin Milata

refactor(core/rust/crypto): unify init_ctx macros

[no changelog]

Co-authored-by: Roman Zeyde <roman.zeyde@satoshilabs.com>

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

This commit is a code cleanup: it removes duplicate helper macros from several cryptography modules and replaces them with a single shared macro. There is no change to user-facing behavior, no bug fix, and no security patch. It is purely an internal refactoring to make the code easier to maintain.

Security candidatechore(core/rust): update zeroize to 1.8.2by Martin Milata · 203ac1bc · Nov 18, 2025 · 2 filesMessage 57 · ThinInformational 15Details
Commit message · Martin Milata

chore(core/rust): update zeroize to 1.8.2

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

This commit simply bumps the version of a Rust dependency called zeroize from 1.7.0 to 1.8.2. zeroize is a library used to securely erase sensitive data from memory. The change itself is a routine version update with no visible security fix or vulnerability being addressed in the commit. There is no indication this update fixes a known security problem in Trezor firmware.

Security candidaterefactor(core): rust bindings for trezor-crypto primitives needed by THPby Martin Milata · db411e96 · Nov 18, 2025 · 13 filesMessage 62 · AdequateInformational 20Details
Commit message · Martin Milata

refactor(core): rust bindings for trezor-crypto primitives needed by THP

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

This commit adds Rust wrappers around existing low-level cryptographic functions in the Trezor firmware so they can be used by a new feature called THP. It does not appear to fix a known bug or vulnerability. The changes are mostly a refactor: they expose AES-GCM, Curve25519, HMAC-SHA256, SHA-512, CRC32, and a random-byte helper to Rust code, and add unit tests. There is no direct evidence in the commit that this resolves a security issue, but any new crypto binding introduces a small chance of misuse or memory-safety mistakes.

Security candidatechore(core/rust): update bindgen to 0.72.1by Martin Milata · 359f1754 · Nov 18, 2025 · 5 filesMessage 57 · ThinInformational 18Details
Commit message · Martin Milata

chore(core/rust): update bindgen to 0.72.1

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
AI analysis · Informational 18/100

This is a routine dependency update for the Rust build tool bindgen inside Trezor firmware. It bumps bindgen from version 0.62.0 to 0.72.1 and adjusts the code to match the newer API. The change removes a small workaround that forced a function signature to be read as non-const pointers, because the newer bindgen now generates the correct const pointers. There is no direct security fix here, but keeping build tools current reduces the chance of future bugs or build issues.

Security candidaterefactor(crypto): add missing headerby Martin Milata · 7796e041 · Nov 18, 2025 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · Martin Milata

refactor(crypto): add missing header

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

This is a one-line change adding a missing C standard header file (`stdbool.h`) to a cryptographic header. It enables the use of `bool`, `true`, and `false` types in the file. There is no functional code change, no bug fix, and no security-relevant behavior change visible in the diff.

Security candidatefix(crypto): unify AES context layout on GCC and clang (bindgen)by Martin Milata · 27bd4198 · Nov 18, 2025 · 1 fileMessage 62 · AdequateLow 30Details
Commit message · Martin Milata

fix(crypto): unify AES context layout on GCC and clang (bindgen)

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

This commit fixes a compiler-specific alignment definition for AES cryptographic data structures. Previously, the code only forced memory alignment when compiled with GCC on 64-bit x86, but not when compiled with Clang on the same architecture. The change makes Clang behave the same way as GCC, ensuring the AES context has the same memory layout regardless of which compiler is used. This is a hardening/fix for consistency in cryptographic code, but the commit message does not describe an active exploit or security vulnerability.

Security candidatechore(python): remove 'beta' channel supportby Roman Zeyde · e94ccb97 · Nov 15, 2025 · 1 fileMessage 57 · ThinInformational 19Details
Commit message · Roman Zeyde

chore(python): remove 'beta' channel support

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

This commit removes the ability to download or install 'beta' firmware versions through the Trezor Python command-line tool. It is a feature cleanup, not a security fix. There is no indication it patches a vulnerability.

Security candidaterefactor(core): improve applet interfaceby cepetr · 54e319e2 · Nov 13, 2025 · 4 filesMessage 57 · ThinLow 28Details
Commit message · cepetr

refactor(core): improve applet 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
cryptography-sensitive path
AI analysis · Low 28/100

This commit is a small internal cleanup of how the Trezor firmware's kernel talks to applets (isolated mini-programs). It removes a direct pointer to the applet's header from the applet structure and instead reads that header from the start of the applet's code area when needed. The change is described as a refactor with no changelog. There is no direct evidence in the commit that this fixes a security vulnerability, but it does reduce the chance that a stale or manipulated header pointer could be used.

Security candidatefix(core): relocate const globals to .rodataby cepetr · 5226cb5e · Nov 13, 2025 · 3 filesMessage 57 · ThinInformational 15Details
Commit message · cepetr

fix(core): relocate const globals to .rodata

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

This commit marks several fixed data objects as read-only constants so the compiler can place them in flash memory (.rodata) instead of writable RAM. This is a hardening change: it prevents accidental or malicious code from modifying values like the device model name, USB product strings, firmware revision, and the base32 alphabet. There is no direct evidence in the commit that an actual exploit exists; it is a defensive memory-layout fix.

Security candidaterefactor(core): remove coreapp specific logic from appletsby cepetr · 3f383a6f · Nov 13, 2025 · 8 filesMessage 62 · AdequateInformational 11Details
Commit message · cepetr

refactor(core): remove coreapp specific logic from applets

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

This commit is a code cleanup that moves coreapp-specific logic out of the generic applet code into a new dedicated coreapp module. It does not appear to fix or introduce a security vulnerability; it is a structural refactor to make the applet abstraction more generic and prepare for future extension applets.

Security candidatefix(core): remove irq locking from unpriv codeby cepetr · bacb0808 · Nov 13, 2025 · 1 fileMessage 57 · ThinLow 39Details
Commit message · cepetr

fix(core): remove irq locking from unpriv code

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

This commit changes how the Trezor firmware's embedded Python interpreter handles short 'atomic' critical sections. Previously, these sections disabled interrupts using a privileged system call. Now they are replaced with no-ops (do nothing). The stated reason is to remove interrupt locking from unprivileged code. The change could affect timing, race conditions, or security properties that relied on interrupt masking for atomicity, but the diff alone does not show an exploitable bug or a disclosed vulnerability.

Security candidatefeat(core): introduce coreapp TLS sectionby cepetr · b8d5b8cc · Nov 13, 2025 · 10 filesMessage 57 · ThinLow 27Details
Commit message · cepetr

feat(core): introduce coreapp TLS section

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

This commit adds a new 'thread-local storage' (TLS) memory section for Trezor's coreapp on newer hardware models. It changes how the device saves and restores small, per-task memory areas when switching between tasks. The change is a feature implementation, not a fix for a known security bug. There is no evidence in the commit or supplied references that this addresses an active vulnerability or was disclosed as security-relevant.

Security candidatefeat(common,core,python,tests): add `tron.get_address` support.by Jun Luo · 590d3e98 · Nov 12, 2025 · 36 filesMessage 72 · AdequateInformational 18Details
Commit message · Jun Luo

feat(common,core,python,tests): add `tron.get_address` support.

[no changelog]

72/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
boot or update path
AI analysis · Informational 18/100

This commit adds support for retrieving Tron cryptocurrency addresses on Trezor hardware wallets. It is a feature addition that extends existing address-derivation infrastructure to a new blockchain. There is no indication in the commit that it fixes a security bug or introduces a vulnerability.

Security candidatefix(tron): update tron to use sessionby PrisionMike · 0468fa14 · Nov 12, 2025 · 15 filesMessage 80 · StrongInformational 17Details
Commit message · PrisionMike

fix(tron): update tron to use session

- Minor code fixes to old PR by overcat
- Only build Tron for debug builds
- Updated message index
- Updated text fixtures
[no changelog]

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
boot or update path
AI analysis · Informational 17/100

This commit updates the Tron coin support in Trezor firmware to use the newer 'session' API and changes the Tron message type numbers. It also removes unused Tron transaction-signing message definitions and limits Tron support to debug builds only. There is no direct evidence in the commit of a security vulnerability being fixed; it appears to be a maintenance and integration cleanup change.

Security candidatefix(crypto): fix empty array warningby Ondřej Vejpustek · 8ea41b3c · Nov 10, 2025 · 2 filesMessage 57 · ThinInformational 15Details
Commit message · Ondřej Vejpustek

fix(crypto): fix empty array warning

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

This commit changes a function parameter declaration from an empty array syntax to a pointer syntax in the Noise protocol cryptography code. It is purely a coding-style/compiler-warning fix with no functional change to the program's behavior or security.

Security candidatechore: bump versionsby Roman Zeyde · 42b26bfd · Nov 7, 2025 · 12 filesMessage 55 · ThinInformational 15Details
Commit message · Roman Zeyde

chore: bump versions

core -> 2.9.5
bootloader -> 2.1.15
prodtest -> 0.3.6
secmon -> 1.0.4

[no changelog]

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

This commit only updates version numbers and translation metadata. It does not change any program logic, fix any bug, or alter any security behavior. There is nothing here that could directly affect security.

Security candidatefeat(core): functions for Evolu spam protectionby Martin Pastyřík · d2516f1d · Nov 5, 2025 · 60 filesMessage 57 · ThinLow 45Details
Commit message · Martin Pastyřík

feat(core): functions for Evolu spam protection

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
signing or wallet pathboot or update pathauthentication path
AI analysis · Low 45/100

This commit adds new Trezor firmware features for an 'Evolu' / 'Suite Sync' service. It introduces a device-bound delegated identity key, a way to export that key after user confirmation, and ways to prove possession of that key to request a SLIP-21 node or to sign a registration request with the device's Optiga certificate. The change is framed by the vendor as spam protection / anti-abuse functionality, not as a security fix. The commit itself is a feature implementation, but it touches sensitive areas: key derivation from a new per-device master secret, secure-monitor/kernel syscalls for reading a private key, and user-consent flows for exporting a private key.

Security candidatefix(eckhart,stellar): updated font for stellar amount and bitcoin lock timeby PrisionMike · 0143345e · Nov 4, 2025 · 4 filesMessage 85 · StrongInformational 15Details
Commit message · PrisionMike

fix(eckhart,stellar): updated font for stellar amount and bitcoin lock time

Fix stellar amount font on T3W1
Fixes #6109
Also updates Bitcoin lock datetime font.

85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ 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/UI-only fix for the Trezor T3W1 hardware wallet. It changes the font used to display Stellar transaction amounts and Bitcoin lock times on the device screen. There is no change to security logic, cryptography, transaction validation, or how the device signs anything. The only code changes are selecting a different font style and updating the corresponding screen snapshot hashes used by automated tests.

Security candidateRevert "chore: remove `GetNonce` and `PaymentRequest` from experimental features"by Roman Zeyde · 366580dc · Nov 4, 2025 · 24 filesMessage 65 · AdequateInformational 21Details
Commit message · Roman Zeyde

Revert "chore: remove `GetNonce` and `PaymentRequest` from experimental features"

This reverts commit 6b844d37489d79e88d1cec6a443fe550a5f6469d.

65/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Why it was queued
nonce handlingcryptography-sensitive pathsigning or wallet path
AI analysis · Informational 21/100

This commit is a simple revert that puts two features—PaymentRequest and GetNonce/Nonce—back into the 'experimental' category in Trezor's protocol definitions. It does not fix or introduce a security bug; it just re-labels fields and messages as experimental again and updates generated code and tests accordingly. The change is administrative: it re-enables the experimental flag so these features are only usable when a device has experimental features turned on.

Security candidatechore(eckhart): make warning button multi lineby Ioan Bizău · 4231c563 · Nov 4, 2025 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · Ioan Bizău

chore(eckhart): make warning button multi line

[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 is a trivial user-interface layout change. It switches one button in a warning screen from a single-line text button to a multi-line text button so longer button labels can wrap. There is no security relevance in the code change itself.

Security candidatefix(eth): Hardening ERC-20 detection logicby PrisionMike · 5f7e6a2d · Nov 3, 2025 · 1 fileMessage 85 · StrongModerate 63Details
Commit message · PrisionMike

fix(eth): Hardening ERC-20 detection logic

Previously, we were checking just the 'shape' and size of the contract to determine if it's an ERC-20 contract call. We now directly look at the function signature, if it is familiar. Changed function name for clarity as it handles non-ERC-20 contracts as well.
[no changelog]

85/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Names security-relevant behavior explicitly
Why it was queued
signing boundarydefensive validationsigning or wallet path
AI analysis · Moderate 63/100

This commit tightens how a Trezor hardware wallet decides whether an Ethereum transaction is a standard ERC-20 token transfer/approval. Previously the code guessed based on the transaction's overall shape and size; now it also checks the actual function signature bytes. The change removes an assumption that any matching transaction must be either a transfer or approval, which could have led the device to display a token-style confirmation for contract calls that only happened to look similar. There is no public claim that this was exploited, and the commit does not label itself as a security fix.