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.
Message quality measures whether a commit identifies its scope, purpose, rationale, testing, and supporting references. It does not change the security-severity score.
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
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
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.
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 …
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
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
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…
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…
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…
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…
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…
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…
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.…
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…
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…
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…
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 …
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
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…
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.
- drop ButtonStyleSheet/ButtonStyle - inline the visual fields (font, with_outline, with_arms, fixed_width, offset) directly onto Button. The two-style sheet only encoded a text-color flip between FG and BG, which is now derived from the button state at render time. - make Button::new take ButtonDetails - replace ButtonType::Nothing with Option - collapse outline/arms into Decoration enum - collapse hold forwarders into one method - drop is_some check in ButtonPage::event - simplify HoldToConfirm component assuming it's always on the right
[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 path
AI analysis · Informational 17/100
This is a code cleanup (refactor) of the on-screen button drawing and touch/hold logic for the Trezor hardware wallet's Caesar UI layout. It removes unused style-sheet abstractions, simplifies how buttons are described, and makes the hold-to-confirm component always assume it sits on the right side of the screen. The commit is tagged [no changelog] and contains no explicit security claims. The only behavior-visible change is a small simplification in the page component: when the left button is triggered on the first page, it now always returns a Cancel message instead of first checking whether a cancel button was configured. That change is a simplification based on an existing invariant, not a fix for a known vulnerability.
fix(test): skip incompatible tests with BTC-only FW
Ten unit tests were failing with BTC-only firmware instead of being skipped.
[no changelog]
87/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Mentions testing or verification
Why it was queued
seed or entropy pathsigning or wallet pathparser or protocol path
AI analysis · Informational 15/100
This commit only changes test files so that ten unit tests are skipped when running against the Bitcoin-only firmware variant. It does not modify the actual Trezor firmware code that users run, so it cannot directly affect device security or user funds.
Security candidatefeat(Ripple): Support AccountDelete Transactionby PrisionMike · 27eb67e3 · May 22, 2026 · 18 filesMessage 90 · StrongLow 30Details
Commit message · PrisionMike
feat(Ripple): Support AccountDelete Transaction
- Makes Payment and Account Delete mutually exclusive but mandatory fields in RippleSignTx message. - Tests for regular deletion and cancellation - Removed passing `description` in menu items in Caesar - New TR strings added to `en.json`
90/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
cryptography-sensitive pathsigning or wallet path
AI analysis · Low 30/100
This commit adds support for a new Ripple transaction type called AccountDelete to Trezor hardware wallets. It is a feature addition, not a security patch. The change lets users sign transactions that delete a Ripple account and send any remaining balance to a chosen destination. The code adds user-facing confirmation screens and enforces that a transaction cannot be both a payment and an account deletion. There is no direct evidence in the commit of a security vulnerability, but any new signing path deserves careful review because bugs could let an attacker trick a user into deleting an account or signing an unintended transaction.
feat(core): add T3W1 touch wakeup emulation support
- Enable USE_SUSPEND and USE_TOUCH_WAKEUP defines in T3W1 emulator - Guard mouse events behind USE_TOUCH_WAKEUP in pm_suspend() SDL loop - Respect touch_wakeup_get_enabled() state; ignore mouse clicks when tap-to-wake is disabled so the emulator stays suspended correctly
[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 15/100
This commit adds emulator-only support for a new Trezor device (T3W1) to wake from a simulated low-power sleep state when the user taps the emulated touchscreen. It only affects the software emulator build, not real hardware, and does not change how secrets or user data are handled. There is no indication this is a security fix.
Lower-priorityfeat(core): expose tap_to_wake in Features protobuf messageby bleska · decbc4e7 · May 22, 2026 · 9 filesMessage 95 · StrongInformational 19Details
Commit message · bleska
feat(core): expose tap_to_wake in Features protobuf message
Add optional bool tap_to_wake (field 63) and Capability_TouchWakeup = 26 to the Features protobuf message. Populate both in GetFeatures when USE_TOUCH_WAKEUP is enabled, consistent with how haptic_feedback and Capability.Haptic are handled. Update device_content() in click tests to use features.tap_to_wake is not None instead of checking internal_model, and update UI test fixtures accordingly.
[no changelog]
95/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification
AI analysis · Informational 19/100
This commit adds a new device-information field called tap_to_wake to the Trezor's Features message, which is the normal response to GetFeatures. It also adds a matching Capability_TouchWakeup flag. The change only reports whether the device supports and has 'tap to wake' enabled; it does not change how the device wakes, how it authorizes transactions, or how secrets are handled. There is no security fix or vulnerability visible in the diff.
It was fixed according to: https://github.com/trezor/trezor-hardware/blob/master/electronics/trezor_safe_7/ts7_main_rev_d_sch.pdf This pin has not been used so far.
88/100 · StrongMessage clarity
✓ 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
access control
AI analysis · Informational 15/100
This commit corrects the wrong GPIO pin assignment for the interrupt line of the Tropic01 secure chip on Trezor T3W1 hardware revisions A, B, and C. Previously the interrupt pin was set to the same pin as the power-control line, which does not match the hardware schematic. The commit message says this interrupt pin has not been used so far, so the practical security impact appears low.
Lower-prioritychore(translations): update fixtures [no changelog]by Michal Kazda · 8ac7d268 · May 22, 2026 · 1 fileMessage 77 · AdequateInformational 15Details
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
AI analysis · Informational 15/100
This commit only updates expected test result hashes (called 'fixtures') in a single test data file. It does not change any firmware, application, or security code. The hashes are used by automated UI tests to verify that screen outputs match expectations after translation-related changes. There is no indication of a security fix or vulnerability being addressed.
AI review queuedchore(translations): sync Crowdin translations [no changelog]by Michal Kazda · 1ffba715 · May 22, 2026 · 6 filesMessage 77 · AdequateInformational 15Details
✓ 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 pathtranslation-only discountsecond-pass: security-sensitive path
AI analysis · Informational 15/100
This commit is a routine synchronization of translated user-interface text for the Trezor hardware wallet. It updates wording, adds missing translations, and removes obsolete translation keys across several language files. There are no code changes that affect security, cryptography, transaction signing, or device behavior.
Lower-priorityci: remove retries from HW testsby Roman Zeyde · 108c87a7 · May 22, 2026 · 4 filesMessage 98 · StrongInformational 15Details
Commit message · Roman Zeyde
ci: remove retries from HW tests
Retries were added as a workaround for sporadic USB packet loss, which was fixed in https://github.com/trezor/trezor-firmware/pull/6309.
[no changelog]
98/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
AI analysis · Informational 15/100
This commit removes automatic test retries from the Trezor hardware test suite. It is a cleanup change: the retries were a temporary workaround for flaky USB communication during automated testing, and the underlying flakiness was fixed in a separate pull request. There is no change to the firmware that runs on user devices and no security-relevant behavior is modified.
Lower-prioritychore: update signed secmonby Ioan Bizău · 13ee8149 · May 22, 2026 · 1 fileMessage 62 · AdequateInformational 2Details
Commit message · Ioan Bizău
chore: update signed secmon
Built from 41c1ebb
(cherry picked from commit c2025931d489dc0bccd8daad84f876bdd4677e5f)
62/100 · AdequateMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Provides an explanatory body
AI analysis · Informational 2/100
This commit replaces a binary file called secmon.bin for the T3W1 hardware model with a newly built version. The change is described as a routine update ('chore') and there is no description of any security fix or vulnerability. Because the file is a compiled binary, the actual code changes cannot be seen in the diff, so no security issue can be identified from the commit alone.
✓ Descriptive subject✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100
This commit simply changes one version number in a release metadata file, from 2.11.2 to 2.12.0. There is no code change, no bug fix, and no security-related content.
Lower-prioritydocs: update changelogby Ioan Bizău · ed88e164 · May 22, 2026 · 6 filesMessage 55 · ThinInformational 15Details
Commit message · Ioan Bizău
docs: update changelog
(cherry picked from commit 4d89c11df37355bd2cb0f3b8e28cfc661b65f743)
55/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100
This commit only updates changelog files. It renames an upcoming release version from 2.11.2 to 2.12.0 and removes one feature note about MCU device attestation from the T3W1 changelog. No code, logic, or security behavior changes are present.
Lower-prioritydocs: cleanup changelogby Ioan Bizău · 090067df · May 22, 2026 · 6 filesMessage 55 · ThinInformational 15Details
Commit message · Ioan Bizău
docs: cleanup changelog
(cherry picked from commit 396ba43d4c75378541dc8c735c807e8bbb3fa356)
55/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100
This commit only edits changelog text files. It rewrites some entries for grammar and consistency, removes a few empty section headers, and changes the labels of some internal releases. No source code, firmware logic, or security behavior is modified.
Lower-prioritychore: update releases.jsonby Ioan Bizău · 23035893 · May 22, 2026 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Ioan Bizău
chore: update releases.json
(cherry picked from commit 4fee35beb603f91519955bec0b5fe1b28e88b63a)
62/100 · AdequateMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Provides an explanatory body
AI analysis · Informational 15/100
This commit simply adds firmware version 2.11.2 to a list of released versions in a JSON file. It is a routine metadata update with no code changes and no apparent security relevance.
Lower-prioritydocs: cleanup changelogby Ioan Bizău · ab5b2cbd · May 22, 2026 · 6 filesMessage 55 · ThinInformational 15Details
Commit message · Ioan Bizău
docs: cleanup changelog
(cherry picked from commit df0c4ca9dcd892e1105f9930c3ba214100fee526)
55/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100
This commit only removes unused link definitions from several changelog files. It does not change any software code, behavior, or security functionality. There is no security issue here.
Lower-prioritychore: update changelogby Ioan Bizău · 44adc73c · May 22, 2026 · 6 filesMessage 55 · ThinInformational 15Details
Commit message · Ioan Bizău
chore: update changelog
(cherry picked from commit 229cc04569a4bc19990d0603535f4763aa6843bb)
55/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100
This commit only updates changelog files by removing issue reference numbers (like [#246], [#248], [#249]) from three existing security-related entries. It does not change any source code, firmware behavior, or fix any bug. The actual security fixes were already made in earlier commits; this is purely a documentation formatting cleanup.
Lower-prioritychore: update signed secmonby Ioan Bizău · 4b2b040c · May 22, 2026 · 1 fileMessage 62 · AdequateInformational 4Details
Commit message · Ioan Bizău
chore: update signed secmon
Built from 396ba43
(cherry picked from commit ff7d40a00862a55452ccdd49c06ea7b498c97e42)
62/100 · AdequateMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Provides an explanatory body
AI analysis · Informational 4/100
This commit replaces a binary file called secmon.bin for the T3W1 hardware model with a newly built version. The diff shows only that the binary file changed; no source code or human-readable documentation is included, so we cannot determine from the commit itself whether the change fixes a security issue, adds a feature, or is routine maintenance.
AI review queuedchore(core): sign translationsby Ioan Bizău · 6cdea8d1 · May 22, 2026 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Ioan Bizău
chore(core): sign translations
[no changelog]
(cherry picked from commit f172aedee0c12f5fb8d348e96f4068e361db0a7b)
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 15/100
This commit simply adds a new cryptographic signature entry to a JSON file that records approved translation bundles for the Trezor hardware wallet. There is no code change, no bug fix, and no visible security issue. It appears to be routine release housekeeping.
AI review queuedchore(core): sign translationsby Ioan Bizău · 35bb80f1 · May 22, 2026 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Ioan Bizău
chore(core): sign translations
[no changelog]
(cherry picked from commit 75927b452c7d6a43899a337c946aeaedacfdf771)
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 15/100
This commit simply adds a new cryptographic signature entry to a JSON file that records approved translation data for Trezor devices. There is no code change, no bug fix, and no visible security issue. It appears to be routine release housekeeping: signing the translation bundle for firmware version 2.11.2.0.
Lower-prioritychore: update definitions timestampby Ioan Bizău · 8e119e3e · May 22, 2026 · 2 filesMessage 62 · AdequateInformational 15Details
Commit message · Ioan Bizău
chore: update definitions timestamp
(cherry picked from commit 469c2b5c48c8eaeb9aaa839fc69935e648b7d25d)
62/100 · AdequateMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Provides an explanatory body
AI analysis · Informational 15/100
This commit simply updates a timestamp and a matching numeric version constant used for Ethereum network definitions in Trezor firmware. There is no code logic change, no security fix, and no vulnerability present in the diff.
Security candidatechore: update signed T3W1 bootloaderby Ioan Bizău · 34712413 · May 22, 2026 · 2 filesMessage 72 · AdequateInformational 3Details
Commit message · Ioan Bizău
chore: update signed T3W1 bootloader
Built from 396ba43
(cherry picked from commit f452da4d8be26500e109a1396c392eb308238fd9)
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
update trustboot or update path
AI analysis · Informational 3/100
This commit replaces the signed bootloader binary for the Trezor T3W1 hardware wallet model and updates the matching cryptographic hash list. The change is a routine version bump from bootloader version 2.1.16.0 to 2.1.17.0. The commit message and diff provide no information about why the bootloader was rebuilt or whether any security issue was fixed. Because the actual bootloader binary is a compiled blob, its contents cannot be reviewed from this diff alone.
Security candidatechore: update release dateby Ioan Bizău · 6a412b5f · May 22, 2026 · 7 filesMessage 62 · AdequateInformational 15Details
Commit message · Ioan Bizău
chore: update release date
(cherry picked from commit 9422efd641485a0c3400d8ab9185a9683f18b969)
62/100 · AdequateMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
boot or update pathdocumentation-only discount
AI analysis · Informational 15/100
This commit only changes release dates in seven changelog files, moving the stated release date from 21 May 2026 to 14 May 2026. No executable code, configuration, or security-related content is modified.
This reverts commit 9422efd641485a0c3400d8ab9185a9683f18b969.
(cherry picked from commit 383fb7c44525925d50cd08ac3f6c990c40384919)
68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
boot or update pathdocumentation-only discount
AI analysis · Informational 15/100
This commit simply changes release dates in seven changelog files from 14 May 2026 back to 21 May 2026. It is a reversion of an earlier date-change commit. There is no code change and no security relevance.
(cherry picked from commit b37cbb4d6194a2c411c612e08853d08c484ac399)
72/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · High 70/100
This update fixes a bug in how Trezor hardware wallets classify accounts inside Solana transactions. The bug could mislabel read-only signer accounts as writable, or writable accounts as read-only. Because Trezor uses these labels to decide what the user must approve on screen, a crafted transaction could trick the wallet into showing a harmless-looking account while actually requiring it to sign or authorizing unexpected changes. The changelog files explicitly mark this as a security fix.
AI review queuedfix(ethereum): cache confirmed valuesby Ioan Bizău · 7b71ac05 · May 22, 2026 · 2 filesMessage 72 · AdequateModerate 57Details
Commit message · Ioan Bizău
fix(ethereum): cache confirmed values
[no changelog]
(cherry picked from commit 491d914729c7f251500eea466a17b72583325081)
72/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Moderate 57/100
This patch changes how a Trezor hardware wallet handles EIP-712 typed data signing for Ethereum. It now caches (stores) the values shown to the user for the domain's name and version fields, and reuses those same cached values when later computing the cryptographic hash. The goal is to prevent a malicious computer or app from showing the user one set of values on screen, but then tricking the device into signing a different set of values. The changelog file labels this as a security fix: 'Cache confirmed EIP-712 domain.'