TZ
← All projectsTrezor

Trezor firmware

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

BitcoinHardware walletsNormal
Repository coverage

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

1137security candidates374second-pass queue2939AI analyses
280commits · 30 days
710commits · 60 days
1666commits · 180 days
2695commits · 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.

67/100 average clarity
650Strong · 80–100
1558Adequate · 60–79
1040Thin · 40–59
7Opaque · 0–39
1security candidate with opaque commit messaging
Read the scoring rubric →
Developer activity

Who is changing the project?

Public Git author strings; identities are not independently verified.

DeveloperCommitsCandidatesAnalyzedHigh riskMessage avg.
tychovrahe343134322564
Roman Zeyde679216622372
obrusvit25896236364
PrisionMike11169109272
Andrew Kozlik833481268
Petr Susil1048287
Jakub Janků591838180
Martin Pastyřík26823173
cepetr264106222059
M1nd3r24689227071
Ioan Bizău23076230059
Lukas Bielesch856784067
Analysis record

Published AI watches

Last scanned 28 minutes ago

Informational 15 AI analysisMessage 77 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

fix(core): add new line on Eckhart address mismatch screen

This commit is a cosmetic UI fix for the Trezor hardware wallet's Eckhart layout. It adds a line break so that a support URL appears on its own line when the device shows an address mismatch warning. There is no security-relevant change to…

99cb0ffdby Michal Kazda+1−01 file
No security note in commit
Informational 18 AI analysisMessage 85 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

fix(core): use buttons__cancel in Delizia menu to cancel PIN setup

This is a tiny user-interface wording fix in the Trezor hardware wallet firmware. It changes the label on one menu button from a long translated phrase ('cancel setup') to a shorter generic word ('Cancel') so that translations fit on scree…

UI wording change onlyNo logic or cryptographic changeNo changelog entry (suggests minor fix)
7a1b8121by Michal Kazda+1−11 file
No security note in commit
Informational 15 AI analysisMessage 85 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

build(crypto): update `crypto/Makefile` to use `-std=gnu11`

This commit simply changes the C language standard version used to compile the crypto library from GNU C99 to GNU C11. It is a routine build-system update with no security-relevant code change and no functional impact on its own.

fafc7d72by Roman Zeyde+1−11 file
No security note in commit
Low 46 AI analysisMessage 93 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(crypto): ensure `secp256k1_context` alignment

This commit fixes how a memory buffer used by the secp256k1 cryptographic library is aligned in memory. The library requires the buffer to be aligned for any data type, but the previous code used a plain byte array, which could be misalign…

Memory alignment hardening for cryptographic context bufferUndefined behavior mitigation in secp256k1-zkp preallocated context creationPotential platform-dependent misalignment risk removed
93860f05by Roman Zeyde+7−11 file
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(core): improvements to English copy

This commit is a routine text cleanup for the Trezor hardware wallet's on-screen English messages. It fixes punctuation, removes unnecessary line breaks, and makes small wording tweaks (for example, changing 'PIN will be required' to 'A PI…

1dbc2c3cby Michal Kazda+22−422 files
No security note in commit
Moderate 59 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(core): app root packet downgrade protection

This commit adds downgrade protection for a new 'app root packet' system in Trezor firmware. Previously, the code had a TODO note saying downgrade protection needed to be considered. The change makes the device remember the timestamps of p…

Replaces a TODO comment ('!@# TODO: Consider downgrade protection') with concrete timestamp-based anti-downgrade checksAdds per-ring timestamp state to prevent rollback of root-of-trust packetsAdds chain_timestamp field and 90-day drift bound to root packet format
4a9cf168by cepetr+335−3112 files
No security note in commit
Moderate 67 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

fix(core/rust): discard low-order keys in THP handshake

This commit fixes a cryptographic edge case in Trezor's THP (Trezor Host Protocol) handshake. It now rejects Curve25519 public keys that are all zeros or that produce an all-zero shared secret. A zero public key can cause the Diffie-Hellma…

Curve25519 zero/low-order public key rejection added to DHZero shared-secret output rejected after scalar multiplicationHandshake state machine now transitions to Failed on initiation-response error
429a283dby M1nd3r+45−74 files
No security note in commit
Informational 11 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(core): enable `ward` with `miniscript`

This commit changes one line in a build configuration file for the Trezor hardware wallet firmware. It adds the 'ward' feature to the existing 'miniscript' feature set. There is no direct evidence in the commit that this is a security fix;…

Single-line Cargo.toml feature flag changeNo code logic modificationNo changelog or security note in commit message
d434a636by Jakub Janků+1−11 file
No security note in commit
Informational 15 AI analysisMessage 80 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(core): add `ward` feature flag

This commit adds a new disabled-by-default feature flag called 'ward' to the Trezor firmware build system. It does not change any production firmware behavior; it only wires up a placeholder MicroPython module and build options so that fut…

New feature flag is disabled by default and gated behind optional Cargo featuresCommit message explicitly states intent to exclude WARD from production firmware buildsNew MicroPython module is a stub with no exported functions beyond __name__
7b58e75aby Jakub Janků+55−018 files
No security note in commit
Low 27 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(core): enable -Wsign-compare

This commit turns on a compiler warning (-Wsign-compare) that catches places where signed and unsigned numbers are compared, and fixes the resulting warnings across the Trezor firmware. Most changes are clean-up casts and loop-index type c…

Compiler warning -Wsign-compare enabled, indicating prior signed/unsigned comparison issuesI/O return-value checks hardened against negative ssize_t values being treated as successPython binding offset/length validation tightened in Monero crypto module
1cc940a4by cepetr+162−15247 files
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(core): merge passphrase__access_hidden_wallet into passphrase__access_wallet

This commit is a simple user-interface cleanup. It removes one duplicate translation label ('Access hidden wallet') and makes the device use a single, consistent label ('Access wallet') when asking the user to confirm opening a passphrase-…

65402aecby Michal Kazda+2−103 files
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(core): merge passphrase__hidden_wallet into passphrase__wallet

This commit is a simple user-interface cleanup. It merges two translation labels that both meant 'Passphrase wallet' into a single label, and updates the screens that used the old duplicate label. There is no security-relevant behavior cha…

7ce6887fby Michal Kazda+5−184 files
No security note in commit
Informational 11 AI analysisMessage 72 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(core): update UI fixtures

This commit only updates the expected screenshots (UI fixtures) used in automated tests. The change reflects that multisig account names are now shown on screen during signing for Bitcoin, Bitcoin Cash and Zcash. There is no code change, n…

247390cbby Petr Susil+1873−5891 file
No security note in commit
Low 45 AI analysisMessage 85 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

fix(core/bootloader): keep the full block length for block-0 retries

This commit fixes a bug in the Trezor bootloader's firmware-update code. When updating firmware, the first block of data is fetched in two pieces: a small initial 'header prefetch,' then the rest. If a communication error happened and the …

Firmware update reliability bug in bootloaderBlock-0 retry path truncated data before hash verificationHash mismatch caused by buffer offset/size mismatch, not by attacker
dc937ba2by tychovrahe+81−711 file
No security note in commit
Informational 12 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(core/bootloader): separate image upload and image checks

This commit is a code cleanup in the Trezor bootloader. It moves the generic, image-type-agnostic parts of firmware upload (chunk receiving, retry logic, flash erasing/writing, timeouts) into a new reusable module called wf_image_upload.c,…

Refactor only: logic moved, not changed in security-relevant waysSame signature/version/model/downgrade checks remain in firmware-specific handlerSame flash erase/write sequence preserved in generic engine
caab7d9eby tychovrahe+772−4834 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(core): remove unused trezor_lib/ui feature

This commit removes an unused Rust Cargo feature flag called 'ui' from the Trezor firmware build configuration. It is a cleanup change: the feature was always enabled in practice, so the code now compiles unconditionally. There is no secur…

1436fbc6by cepetr+2−158 files
No security note in commit
Low 27 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

fix(core/caesar): change confirm middle button

This commit changes how users confirm an Ethereum authorization screen on Trezor's 'Caesar' layout. Previously, the user had to hold down a button to approve; now a simple tap is enough. The change only affects the user-interface interacti…

UI confirmation gesture changed from hold-to-confirm to tap-to-confirmOnly affects EIP-7702 authorization flow on Caesar (T3B1) layoutTest fixture hashes updated for all supported languages
e231cc94by obrusvit+50−502 files
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(core): merge firmware and unix cargo packages

This commit is a routine internal cleanup that merges two separate build packages (one for real hardware firmware and one for the desktop emulator) into a single package. It moves source files into subdirectories and updates build scripts …

6be32440by cepetr+48−32025 files
No security note in commit
Informational 15 AI analysisMessage 67 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(core): test aes gcm only if enabled

This commit is a minor build/test maintenance change. It adds a feature flag (USE_AES_GCM) so that AES-GCM tests are only run when the feature is actually enabled in a particular firmware build. There is no security fix or vulnerability be…

890aca93by cepetr+13−14 files
No security note in commit
Informational 15 AI analysisMessage 95 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(python, tests): add and update GNU licence headers

This commit only adds or updates copyright and GNU license header comments in Python test and tooling files. It makes no changes to executable code, so it cannot introduce a security vulnerability or fix one.

6dc781c2by M1nd3r+1202−203250 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 candidaterefactor(core): switch to slots-based mp_obj_type_tby Martin Milata · ab51798f · Aug 3, 2026 · 24 filesMessage 85 · StrongInformational 15Details
Commit message · Martin Milata

refactor(core): switch to slots-based mp_obj_type_t

Relevant micropython commits:
3ac8b5851e5f4dade465d52b91ed2ccc17851263 py/obj: Add slot-index mp_obj_type_t representation.
cb0ffdd2bf25dcac3c230bdc1168d492aabaf573 py/obj: Remove basic mp_obj_type_t sparse representation.

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

This commit is a routine internal cleanup that switches how Trezor's firmware defines built-in MicroPython object types. It replaces older, manually-written type structures with a newer macro provided by the upstream MicroPython project. There is no user-visible change, no bug fix, and no security patch in the diff.

Security candidaterefactor(core/rust): bindgen wrapper for calling static micropython functionsby Martin Milata · d5121d92 · Aug 3, 2026 · 6 filesMessage 62 · AdequateInformational 15Details
Commit message · Martin Milata

refactor(core/rust): bindgen wrapper for calling static micropython functions

[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 commit is a straightforward internal code refactor. It adds a small C wrapper file so that Rust code can call two specific internal MicroPython functions that are declared as static/inline in headers. There is no user-facing change, no bug fix, and no security-relevant behavior change visible in the diff.

Lower-priorityrefactor(core): update users of micropython uzlibby Martin Milata · 709075c1 · Aug 3, 2026 · 3 filesMessage 80 · StrongLow 29Details
Commit message · Martin Milata

refactor(core): update users of micropython uzlib

Relevant micropython changes:
c2b8e6e5d685ce0ef7cd7186f326cac8a39eb2a3 lib/uzlib: Clean up tinf -> uzlib rename.
e6c290c3d145de81e23f406c84359860c4d6e632 lib/uzlib: Add a source_read_data var to pass to source_read_cb.

Needs trezor-specific patch.

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

This commit updates Trezor firmware code to match a renamed and slightly changed version of the micropython uzlib decompression library. It renames types (e.g., `uzlib_uncomp` to `uzlib_uncomp_t`), replaces old return-code constants (`TINF_OK` with `UZLIB_OK`), and adds a new `source_read_data` field used by the library's callback mechanism. The changes are a routine refactor to stay compatible with an upstream micropython update. There is no direct evidence in the commit that this fixes a security vulnerability, but any mismatch between firmware and its decompression library could in principle cause crashes or incorrect behavior during firmware updates.

Security candidatebuild(core): adjust mpy-cross pathsby Martin Milata · 2ef70e16 · Aug 3, 2026 · 4 filesMessage 80 · StrongInformational 15Details
Commit message · Martin Milata

build(core): adjust mpy-cross paths

Relevant micropython commits:
b2e82402688b53829f37475583231b067b9faea7 py/mkrules.mk: Keep all build artefacts inside $(BUILD) directory.
47c84286e8c8d9873e99f12711a683ecd6b9ca62 all: Fix paths to mpy-cross and micropython binaries.

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

This commit is a routine build-system update for the Trezor firmware. It changes where the build process looks for the MicroPython cross-compiler binary (mpy-cross) and synchronizes a configuration header with newer MicroPython code. There is no indication this fixes or introduces a security vulnerability.

Security candidatebuild(core): collect micropython GC root pointersby Martin Milata · fc128f3d · Aug 3, 2026 · 7 filesMessage 80 · StrongLow 30Details
Commit message · Martin Milata

build(core): collect micropython GC root pointers

Relevant micropython commits:
fc3d7ae11be11a7f05709ebfd439061fce9ee555 py/make_root_pointers: Add MP_REGISTER_ROOT_POINTER parser/generator.
7e4b205cb00013b272e4cf9fac128866bf0e1f21 py/mpstate: Drop MICROPY_PORT_ROOT_POINTERS from mp_state_vm_t.

[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 updates the Trezor firmware build system to use a newer MicroPython mechanism for tracking special memory pointers called 'root pointers.' It removes hard-coded lists of these pointers from configuration files and instead collects them automatically from source files during the build. The change itself is a build-system modernization and does not appear to fix an active security bug, but it helps prevent a class of future memory-management mistakes that could, in theory, lead to device instability or security issues.

Security candidaterefactor(core): micropython-1.28.0 embedded fixupsby Martin Milata · e985132f · Aug 3, 2026 · 5 filesMessage 85 · StrongInformational 11Details
Commit message · Martin Milata

refactor(core): micropython-1.28.0 embedded fixups

Relevant micropython commits:
2c828a88153dfdbd767fc0d8f2124cfbefdcbc81 unix: Update port to use the new event functions.
2757acf6ed1fe165e4d8aa72ba8090fb9bc60c31 py/nlr: Implement jump callbacks.
3446d440f661cf3c052c08e5c6879b1e59a478bb shared/runtime/gchelper: Drop cpu directive from ARM asm helpers.

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

This commit updates the Trezor firmware's embedded MicroPython runtime to version 1.28.0. It swaps in newer ARM assembly helpers for garbage collection, removes some old event-polling macros, and adds support for a new exception-handling callback mechanism. There is no direct evidence in the commit or supplied references that this fixes a security vulnerability; it reads as a routine upstream synchronization/refactoring.

Lower-priorityrefactor(core): port modtrezorutils-meminfo to micropython-1.28.0by Martin Milata · a6f7f8a6 · Aug 3, 2026 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Martin Milata

refactor(core): port modtrezorutils-meminfo to micropython-1.28.0

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

This commit updates an internal debugging tool (meminfo) to work with a newer version of MicroPython. It only changes how memory statistics are printed and how internal MicroPython structures are accessed. There is no indication this affects user funds, wallet security, or introduces an exploitable vulnerability.

Security candidaterefactor(core): disable sys.argv for firmwareby Martin Milata · 3a43e8b7 · Aug 3, 2026 · 3 filesMessage 57 · ThinLow 28Details
Commit message · Martin Milata

refactor(core): disable sys.argv for firmware

[no changelog]

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

This commit removes support for sys.argv (command-line argument lists) from the Trezor firmware's embedded MicroPython interpreter. In a hardware wallet, there is no legitimate command line, so keeping sys.argv enabled only added unused code and a small potential attack surface. The change is a hardening/refactoring step rather than a fix for a known exploit.

Lower-prioritychore(core): update fixturesby Martin Milata · 4c8a38f2 · Aug 3, 2026 · 1 fileMessage 47 · ThinInformational 14Details
Commit message · Martin Milata

chore(core): update fixtures

[no changelog]

47/100 · ThinMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 14/100

This commit only updates expected test result hashes (called 'fixtures') in a single test data file. It does not change any firmware, application, or cryptographic code. There is no direct evidence of a security vulnerability being fixed or introduced here.

AI review queuedrefactor(core/rust): update obj_type! for slots-based mp_obj_type_tby Martin Milata · aba19a5a · Aug 3, 2026 · 15 filesMessage 85 · StrongInformational 19Details
Commit message · Martin Milata

refactor(core/rust): update obj_type! for slots-based mp_obj_type_t

Relevant micropython commits:
3ac8b5851e5f4dade465d52b91ed2ccc17851263 py/obj: Add slot-index mp_obj_type_t representation.
cb0ffdd2bf25dcac3c230bdc1168d492aabaf573 py/obj: Remove basic mp_obj_type_t sparse representation.

[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
parser or protocol pathsecond-pass: security-sensitive path
AI analysis · Informational 19/100

This is a routine internal refactoring in the Trezor firmware's Rust code. It updates how Rust code builds MicroPython object type definitions to match a newer version of MicroPython that stores type information in a 'slots' array rather than a flat structure. There is no user-facing feature change and no indication of a security fix.

Security candidaterefactor(core): get rid of the STATIC macroby Martin Milata · 053def4c · Aug 3, 2026 · 57 filesMessage 80 · StrongInformational 15Details
Commit message · Martin Milata

refactor(core): get rid of the STATIC macro

Relevant micropython changes:
decf8e6a8bb940d5829ca3296790631fcece7b21 all: Remove the "STATIC" macro and just use "static" instead.

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

This commit is a large but purely mechanical code cleanup: it replaces the custom STATIC macro with the standard C keyword static across many MicroPython module files. There is no change to program logic, security boundaries, or behavior. It also removes build-system workarounds that were only needed because the old macro was being abused to expose internal functions.

Security candidaterefactor(core): micropython time moduleby Martin Milata · a812f2a9 · Aug 3, 2026 · 6 filesMessage 80 · StrongInformational 15Details
Commit message · Martin Milata

refactor(core): micropython time module

Relevant micropython commits:
995555300181b3385855f5a4ffb629441553d3ea extmod/modutime: Provide a generic time module.
df05caea6c6437a8b4756ec502a5e6210f4b6256 shared/timeutils: Standardize supported date range on all platforms.

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

This is a routine code cleanup that swaps one internal MicroPython time module for another. It does not fix or introduce any security issue visible in the commit.

Security candidaterefactor(core): fix renamed micropython modulesby Martin Milata · e1edbee0 · Aug 3, 2026 · 27 filesMessage 80 · StrongInformational 15Details
Commit message · Martin Milata

refactor(core): fix renamed micropython modules

E.g. uos was renamed to os, uerrno to errno.

Relevant micropython commits:
45ac651d1a2801bccbdc32fddaa9b029ed4ce879 all: Rename *umodule*.c to remove the "u" prefix.
f5f9edf6457624bf32e71b0c2fdcfbfa5d5753a6 all: Rename UMODULE to MODULE in preprocessor/Makefile vars.

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

This commit is a routine code cleanup that updates Trezor firmware to match a newer MicroPython version where built-in module names dropped the 'u' prefix (for example, 'uos' became 'os' and 'ustruct' became 'struct'). It renames imports, configuration flags, and source file references, and removes old mock files. There is no security fix or vulnerability here.

Lower-priorityrefactor(core): deterministic share word confirmationby Martin Milata · 421ece4b · Aug 3, 2026 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Martin Milata

refactor(core): deterministic share word confirmation

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

This is a tiny code cleanup that changes how a list of backup words is prepared before being shown to the user. It adds sorting so automated UI tests produce the same screen order regardless of internal hash randomness. The actual list is still shuffled with a secure random function afterward, so user-facing behavior is unchanged. There is no security issue here.

Security candidaterefactor(core): sync projects/unix/main.c with micropythonby Martin Milata · d2938a67 · Aug 3, 2026 · 9 filesMessage 97 · StrongLow 27Details
Commit message · Martin Milata

refactor(core): sync projects/unix/main.c with micropython

The file is now be quite similar to the upstream one to make future
updates easier. Notable differences include:

- entry point is `coreapp_emu()` instead of `main()`
- different command line handling that loads `main` if no module or
command is provided
- no filesystem access for frozen emulator to prevent it from loading
live modules
- no default sys.path

[no changelog]

97/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Explains rationale or failure mode
Why it was queued
boot or update path
AI analysis · Low 27/100

This commit refactors the Trezor firmware's Unix emulator main file to more closely match the upstream MicroPython project. It enables a virtual file system (VFS) for the emulator, but explicitly blocks live filesystem access when running the frozen (production-like) emulator build. The changes are described as maintenance-only and carry a '[no changelog]' tag, meaning the vendor does not treat them as a security fix.

AI review queuedrefactor(core): inline `data_length` into `_get_digest_length()`by Roman Zeyde · df4447c9 · Aug 3, 2026 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Roman Zeyde

refactor(core): inline `data_length` into `_get_digest_length()`

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

This is a tiny code cleanup in the Ethereum transaction signing code. It moves where a variable is defined without changing what the code actually does. There is no security issue visible in the change.

Lower-prioritychore(core): update common changelog as wellby Roman Zeyde · 8c04a8fb · Aug 3, 2026 · 1 fileMessage 80 · StrongInformational 15Details
Commit message · Roman Zeyde

chore(core): update common changelog as well

Following https://github.com/trezor/trezor-firmware/pull/7458.

[no changelog]

80/100 · StrongMessage clarity
✓ 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
documentation-only discount
AI analysis · Informational 15/100

This commit only updates the changelog text in core/CHANGELOG.md. It adds a one-line note describing a security fix ('Discard low-order keys in THP Code Entry pairing') that was already merged in a previous pull request. There are no code changes, no new functionality, and no direct security fix in this commit itself.

AI review queuedrefactor(core): simplify ETH access list RLP encodingby Roman Zeyde · 2d23449f · Aug 3, 2026 · 1 fileMessage 93 · StrongInformational 12Details
Commit message · Roman Zeyde

refactor(core): simplify ETH access list RLP encoding

`rlp.length()` and `rlp.write()` support handling a list of `RLPItem`s.

https://eips.ethereum.org/EIPS/eip-2930#parameters

[no changelog]

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

This commit is a small internal cleanup of how Ethereum transaction 'access lists' are formatted for RLP encoding in the Trezor firmware. It replaces a hand-rolled length calculation and manual header writing with higher-level helper functions that do the same job. There is no user-visible behavior change and no indication of a security fix.

Lower-prioritychore(core): add missing changelog entryby M1nd3r · 1ca68b3b · Aug 3, 2026 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · M1nd3r

chore(core): add missing changelog entry

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

This commit only adds a missing line to a changelog file describing a security fix that was already implemented in earlier code. It does not change any source code, firmware behavior, or cryptographic logic. There is nothing here that could directly affect device security.

Lower-priorityfix(core): fix deadlock in systask_kill()by cepetr · 505a9d65 · Aug 3, 2026 · 4 filesMessage 57 · ThinLow 42Details
Commit message · cepetr

fix(core): fix deadlock in systask_kill()

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

This commit fixes a deadlock bug in the Trezor firmware's task-killing code. Previously, the code that terminates a background task was marked as a function that never returns, but under some conditions it could actually return and then spin forever doing nothing. That could freeze the device. The fix moves the 'never return' guarantee to the outer system-exit functions and lets the internal task-killer return normally after handing control back to the kernel task.

Security candidatechore(core): bump version to 2.12.5by Martin Milata · 82c04645 · Aug 3, 2026 · 8 filesMessage 57 · ThinInformational 15Details
Commit message · Martin Milata

chore(core): bump version to 2.12.5

[no changelog]

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

This commit only updates the firmware version number from 2.12.4 to 2.12.5 in the source code and translation files. It does not change any security-related logic, fix any bug, or alter any cryptographic behavior. It is a routine release bookkeeping change with no security relevance.

Lower-prioritychore(core/secmon): bump version to 1.0.14by Martin Milata · 88dd7f33 · Aug 3, 2026 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · Martin Milata

chore(core/secmon): bump version to 1.0.14

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

This commit only increases a version number from 1.0.13 to 1.0.14 in a header file for the secure monitor component. There are no code changes, no bug fixes, and no security-related content in the diff.

Security candidatechore(core): build trezor_lib with xbuildby cepetr · 9ba7ee1b · Aug 3, 2026 · 16 filesMessage 57 · ThinInformational 15Details
Commit message · cepetr

chore(core): build trezor_lib with xbuild

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

This is a routine build-system cleanup for the Trezor firmware. It switches the internal 'trezor_lib' Rust crate to be built with the project's own 'xbuild' tool, removes transitional feature flags, and reorganizes Cargo.toml files. There is no indication this change fixes or introduces a security vulnerability.

AI review queuedchore(core): sign translationsby Martin Milata · 38b528f2 · Aug 3, 2026 · 1 fileMessage 62 · AdequateInformational 18Details
Commit message · Martin Milata

chore(core): sign translations

[no changelog]

(cherry picked from commit 4c4870262b85c04ba235602ba49307015118c3f5)

62/100 · AdequateMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
signing or wallet pathtranslation-only discountsecond-pass: security-sensitive path
AI analysis · Informational 18/100

This commit adds a new cryptographic signature entry to a JSON file that records approved translation bundles for the Trezor hardware wallet. It does not change any executable code, fix a bug, or alter security logic. The signature appears to be a routine administrative update authorizing a new set of translated strings for firmware version 2.12.4.0.

Lower-priorityrefactor(core/rust): use FatPtr in rust syslog bindingby matejcik · 178950a9 · Aug 3, 2026 · 1 fileMessage 77 · AdequateInformational 12Details
Commit message · matejcik

refactor(core/rust): use FatPtr in rust syslog binding

taking advantage of the new zero-length-slice feature

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

This commit is a small internal cleanup in the Rust code that handles device logging. It replaces manual pointer-and-length handling with a helper called FatPtr, which is designed to safely represent string slices. There is no indication this change fixes a security bug or introduces a new vulnerability; it appears to be a routine refactoring that relies on a newly available language feature.