TZ
← All projectsTrezor

Trezor firmware

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

BitcoinHardware walletsNormal
Repository coverage

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

1132security candidates374second-pass queue2934AI analyses
279commits · 30 days
708commits · 60 days
1660commits · 180 days
2691commits · 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
648Strong · 80–100
1555Adequate · 60–79
1039Thin · 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
PrisionMike10866106272
Andrew Kozlik833481268
Petr Susil1048287
Jakub Janků591838180
Martin Pastyřík26823173
cepetr264106222059
M1nd3r24689227071
Ioan Bizău23076230059
Lukas Bielesch856784067
Analysis record

Published AI watches

Last scanned 1 minute ago

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
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(core): move the multisig XPUB title into a translation template

This commit is a straightforward code cleanup: it moves the on-screen title for multisig XPUB screens from hard-coded English text into the device's translation system. The visible text remains essentially the same, and there is no securit…

6d69df16by Michal Kazda+20279−2023911 files
No security note in commit
Informational 15 AI analysisMessage 77 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(core): render translated strings verbatim in layouts

This is a cosmetic code cleanup. It moves punctuation and capitalization out of the Python code and into the translation files so translated strings are shown exactly as written. There is no security-relevant change.

162ed3a2by Michal Kazda+12−125 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.

AI review queuedchore(core): Crowdin sync for wipe code cancelby obrusvit · 3f4ac8b0 · Sep 17, 2025 · 7 filesMessage 57 · ThinInformational 15Details
Commit message · obrusvit

chore(core): Crowdin sync for wipe code cancel

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
signing or wallet pathtranslation-only discountsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit only updates translated text strings for the Trezor hardware wallet's user interface. It adds a new message about canceling the setup of a 'wipe code' (a feature that erases the device if a specific code is entered) and updates the digital signature that verifies the translation files. There is no code that handles secrets, cryptography, device communication, or security logic being changed.

AI review queuedchore(core): additional Crowdin sync for Eckhartby obrusvit · e70903f5 · Sep 17, 2025 · 8 filesMessage 57 · ThinInformational 15Details
Commit message · obrusvit

chore(core): additional Crowdin sync for Eckhart

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

This commit is a routine translation update for the Trezor hardware wallet firmware. It adds and updates translated text strings for a new device model called 'Eckhart' across several language files (Czech, German, Spanish, French, Italian, Portuguese). It also updates the digital signature that verifies the translation files and refreshes the expected visual test snapshots because the on-screen text has changed. There is no code that handles secrets, cryptography, or device security logic in this change.

AI review queuedchore(core): Crowdin sync for new Eckhart stringsby obrusvit · e6f18cea · Sep 17, 2025 · 8 filesMessage 57 · ThinInformational 15Details
Commit message · obrusvit

chore(core): Crowdin sync for new Eckhart strings

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

This commit is a routine synchronization of translated user-interface text strings for the new 'Eckhart' Trezor device model. It adds and updates translations in Czech, German, Spanish, French, Italian, and Portuguese, plus updates translation signatures and UI test snapshot hashes. There are no code logic changes and no security relevance.

AI review queuedstyle: pystyle & cstyleby matejcik · 55f15d0e · Sep 16, 2025 · 3 filesMessage 28 · OpaqueInformational 15Details
Commit message · matejcik

style: pystyle & cstyle

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100

This commit is purely a code-style and formatting cleanup. It re-indents a large embedded image byte array, adds a missing import and two function calls related to screen dimming in the lock manager, and wraps a debug log line to fit style guidelines. There is no security-relevant change.

AI review queuedbuild(core): uv: add bleak dependencyby Martin Milata · f24eb774 · Sep 11, 2025 · 2 filesMessage 57 · ThinInformational 15Details
Commit message · Martin Milata

build(core): uv: add bleak dependency

[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
second-pass: broader security terminology
AI analysis · Informational 15/100

This commit only adds a new Python library called 'bleak' to the project's dependency list and lock file. Bleak is a popular, legitimate library used for Bluetooth Low Energy communication. There is no actual code change, no vulnerability fix, and no indication of malicious intent in the commit itself. It is a routine build/dependency update.

AI review queuedfix(core): use translation strings for THP layoutsby Roman Zeyde · e68bc306 · Sep 11, 2025 · 7 filesMessage 62 · AdequateInformational 15Details
Commit message · Roman Zeyde

fix(core): use translation strings for THP layouts

[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 commit replaces hard-coded English text in Trezor's on-screen pairing and connection prompts with proper translation keys. The visible messages stay the same in English, but the firmware can now display them in other languages. There is no security bug being fixed here; it is a routine internationalization cleanup.

AI review queued refactor(core): replace all Union usage by | syntax in core except `core/vendor` [no changelog]by M1nd3r · 60cc5c06 · Sep 9, 2025 · 7 filesMessage 77 · AdequateInformational 15Details
Commit message · M1nd3r

refactor(core): replace all Union usage by | syntax in core except `core/vendor`
[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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a routine code cleanup that replaces older Python type-hint syntax (Union[...]) with the newer pipe syntax (|). It also updates one helper function to return None instead of the string 'dynamic' for consistency. There is no change to program logic, no security fix, and no vulnerability introduced.

AI review queuedbuild(deps): bump pillow in /tools/automatic_battery_testerby dependabot[bot] · 7bdcb666 · Sep 8, 2025 · 1 fileMessage 93 · StrongInformational 15Details
Commit message · dependabot[bot]

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

Bumps [pillow](https://github.com/python-pillow/Pillow) from 11.2.1 to 11.3.0.
- [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.2.1...11.3.0)

---
updated-dependencies:
- dependency-name: pillow
dependency-version: 11.3.0
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, bumping the Python image-processing library Pillow from version 11.2.1 to 11.3.0 inside an internal testing tool. The change is a single version number in a requirements file for the automatic battery tester, which is not part of the Trezor firmware that runs on devices or handles cryptocurrency secrets. There is no indication in the commit that this fixes a security issue, and no verified security references were supplied.

AI review queuedbuild: migrate to uv, drop poetry everywhereby matejcik · 8a75794d · Sep 8, 2025 · 29 filesMessage 72 · AdequateInformational 15Details
Commit message · matejcik

build: migrate to uv, drop poetry everywhere

except for HWI and ts-tvl that are using it locally

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: unusually broad changesecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a routine build-system housekeeping change for the Trezor firmware repository. It replaces the Python Poetry package manager with the `uv` package manager across CI workflows, build scripts, and documentation. No device firmware code, cryptographic logic, or security-sensitive behavior is modified. The change is purely about how development dependencies are installed and invoked.

AI review queuedchore(core): pull Crowdin translationsby obrusvit · 3d267500 · Sep 3, 2025 · 10 filesMessage 57 · ThinInformational 15Details
Commit message · obrusvit

chore(core): pull Crowdin translations

[no changelog]

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

This commit is a routine update of user-facing text translations for the Trezor firmware. It changes wording in multiple languages, adds new translation keys for upcoming features (such as Bluetooth and new device screens), and replaces a non-breaking space with a regular space in a few English strings. There is no code logic change and no security-relevant behavior is altered.

AI review queuedfix(translations): shorten some stringsby Ioan Bizău · 50c8a7bf · Sep 3, 2025 · 4 filesMessage 57 · ThinInformational 15Details
Commit message · Ioan Bizău

fix(translations): shorten some strings

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
signing or wallet pathtranslation-only discountsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit only shortens and updates translated user-interface text in Spanish, French, and Portuguese translation files, plus refreshes the translation signature metadata. There are no code, logic, cryptographic, or security changes.

AI review queuedbuild: detect env in nRF build scriptby obrusvit · f8a1787f · Sep 2, 2025 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · obrusvit

build: detect env in nRF build script

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

This commit changes a build script for Trezor's Nordic (nRF) hardware so it can automatically detect whether it is running inside a Docker/Nix build environment or a local developer's machine, and then run the build command the appropriate way. It is a build-system convenience change with no visible security relevance.

AI review queuedchore(core/eckhart): implement BLE device unpairingby Lukas Bielesch · d8d642ab · Sep 2, 2025 · 15 filesMessage 62 · AdequateInformational 21Details
Commit message · Lukas Bielesch

chore(core/eckhart): implement BLE device unpairing

[no changelog]

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 21/100

This commit adds the ability for a Trezor hardware wallet to forget (unpair) a specific Bluetooth device by its MAC address, instead of only being able to unpair the currently connected device or all devices. It is a feature-completion change for the new Eckhart model's Bluetooth settings menu. There is no direct evidence in the commit that this fixes a security vulnerability; it appears to be a routine user-facing feature implementation.

AI review queuedchore(core/eckhart): update BLE pairing actionby Lukas Bielesch · ce6c2394 · Sep 2, 2025 · 7 filesMessage 57 · ThinInformational 15Details
Commit message · Lukas Bielesch

chore(core/eckhart): update BLE pairing action

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

This commit is a routine user-interface tweak for an upcoming Trezor hardware wallet model (codename Eckhart). It changes the Bluetooth pairing limit from 4 to 8 devices, disconnects any active Bluetooth connection before starting pairing, and updates the on-screen warning text and button label shown when the device limit is reached. There is no security-relevant change visible in the code.

AI review queuedfix(core): fix KERNEL MODE + missed dependency.by kopecdav · a0cdc882 · Sep 2, 2025 · 2 filesMessage 57 · ThinInformational 17Details
Commit message · kopecdav

fix(core): fix KERNEL MODE + missed dependency.

[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
second-pass: broader security terminology
AI analysis · Informational 17/100

This commit fixes a build configuration problem in the RGB LED code for Trezor hardware wallets. It moves some shared color definitions outside a KERNEL_MODE guard and wraps an effects source file in the same guard, plus adds a missing dependency. There is no direct evidence this is a security vulnerability; it appears to be a build/dependency fix.

AI review queuedchore(core): sign translations 2.9.1by obrusvit · 4f5f45ea · Sep 1, 2025 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · obrusvit

chore(core): sign translations 2.9.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
signing or wallet pathtranslation-only discountsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit simply adds a new approved digital signature for translation files used in Trezor firmware version 2.9.1. It is a routine maintenance task with no visible security-relevant code change.

AI review queuedfeat(core/prodtest): Check MCU device certificate chain.by Andrew Kozlik · bb3eb7cc · Aug 29, 2025 · 1 fileMessage 62 · AdequateLow 32Details
Commit message · Andrew Kozlik

feat(core/prodtest): Check MCU device certificate chain.

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

This commit adds a verification step in the Trezor hardware wallet's factory production-test tool before writing a device certificate to secure storage. It now checks that the supplied certificate chain is cryptographically valid and matches the device's own MCU authentication key, preventing a malformed or mismatched certificate from being permanently written during manufacturing.

AI review queuedfeat(nordic): add model identifier as a protected TLV into app imageby tychovrahe · b47d8a19 · Aug 27, 2025 · 5 filesMessage 62 · AdequateInformational 15Details
Commit message · tychovrahe

feat(nordic): add model identifier as a protected TLV into app image

[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 commit adds a numeric model identifier for a specific Trezor hardware board (the T3W1 revision A with Nordic nRF52832 chip) into the firmware signing process as a protected custom TLV field. It is a feature addition that embeds device-model metadata into signed firmware images. There is no indication in the commit that it fixes a security bug or introduces a vulnerability.

AI review queuedchore(core): add T3W1 signed vendorheadersby tychovrahe · 9cc66d13 · Aug 27, 2025 · 4 filesMessage 57 · ThinInformational 12Details
Commit message · tychovrahe

chore(core): add T3W1 signed vendorheaders

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

This commit adds four pre-signed binary files called 'vendor headers' for a new Trezor hardware model (T3W1). These files are part of the device's firmware build and boot trust chain, but the commit itself only adds already-signed binaries. There is no code change, no evidence of a vulnerability, and no indication these files are malicious or improperly signed.

AI review queuedchore(core/eckhart): add connection icon to the Buttonby Lukas Bielesch · 3174bf55 · Aug 26, 2025 · 10 filesMessage 77 · AdequateInformational 15Details
Commit message · Lukas Bielesch

chore(core/eckhart): add connection icon to the Button

- new builder function for BLE paired devices

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

This commit is a routine user-interface change for the Trezor hardware wallet. It adds a small connection-status icon and a new 'Disconnected' label to buttons that represent Bluetooth Low Energy (BLE) paired devices. There is no security-relevant behavior change in the code.

AI review queueddocs(core): changelog for 2.9.1by obrusvit · aff66082 · Aug 26, 2025 · 26 filesMessage 57 · ThinInformational 15Details
Commit message · obrusvit

docs(core): changelog for 2.9.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
second-pass: unusually broad change
AI analysis · Informational 15/100

This commit is purely a documentation update: it compiles the changelog for Trezor firmware version 2.9.1 by deleting individual changelog fragments and adding the final release notes to several CHANGELOG files. No source code, firmware logic, or security behavior is changed.

AI review queuedrefactor(python): simplify THP pairing state handlingby Roman Zeyde · 60cf3d88 · Aug 25, 2025 · 3 filesMessage 77 · AdequateInformational 15Details
Commit message · Roman Zeyde

refactor(python): simplify THP pairing state handling

Also, add more logging statements for THP pairing process.

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

This is a straightforward internal code cleanup in Trezor's Python library. It replaces two separate flags that tracked whether a device was paired with a single simpler flag, and adds extra debug logging. There is no indication this fixes or introduces a security vulnerability.

AI review queuedchore(cardano): update UI fixturesby David Misiak · aff9f150 · Aug 25, 2025 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · David Misiak

chore(cardano): update UI fixtures

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

This commit changes a single test marker so that a Cardano message-signing test runs on Trezor Model T/Core devices instead of being skipped on the older T1B1 model. It is a test-suite maintenance change with no effect on the actual firmware code that users rely on.

AI review queuedchore(cardano): rename payloadby Ioan Bizău · bfd66dbb · Aug 25, 2025 · 2 filesMessage 47 · ThinInformational 15Details
Commit message · Ioan Bizău

chore(cardano): rename payload

[no changelog]

47/100 · ThinMessage clarity
✓ Descriptive subject✓ 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 commit is a simple internal code cleanup in the Cardano app of Trezor firmware. It renames a function parameter from 'payload_first_chunk' to 'payload' and switches from keyword arguments to positional arguments in one call. There is no change to user-visible behavior, security logic, or data handling.

AI review queuedfeat(cardano): replace chunking with length+offsetby Peter Jaško · adb9d194 · Aug 25, 2025 · 15 filesMessage 62 · AdequateLow 29Details
Commit message · Peter Jaško

feat(cardano): replace chunking with length+offset

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

This commit rewrites how the Trezor device fetches the message payload during Cardano message signing. Instead of the host pushing fixed-size chunks to the device, the device now asks for a specific slice of data by sending a length and offset, and the host replies with exactly that slice. The change also removes the previous 1024-byte maximum payload size limit, so larger messages can now be signed. The code adds bounds checks on both sides, but because the device now requests the entire payload in one go, this could stress limited device RAM. There is no direct evidence in the commit that this fixes a reported security bug; it reads as a feature/refactoring change.