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.
Expand any commit for its author, full message, clarity score, changed files, triage signals, analysis, and source link.
Security candidatefeat(tests): get Bolt FIDO account nameby Ioan Bizău · 6c55926b · Jan 14, 2026 · 4 filesMessage 67 · AdequateInformational 15Details
Commit message · Ioan Bizău
feat(tests): get Bolt FIDO account name
[no changelog]
67/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
authentication path
AI analysis · Informational 15/100
This commit is a test-infrastructure change only. It adds a way for automated tests to read the account name shown on a FIDO security-key confirmation screen, and renames some existing test helper methods from 'tt_' to 'bolt_' to better match the current product naming. There is no change to how user data is handled, no fix for a bug, and no security-related behavior change.
Security candidatefix(core): adjust T3W1 connect screen text position when no menu is shownby tychovrahe · de96dfd1 · Jan 13, 2026 · 2 filesMessage 62 · AdequateInformational 15Details
Commit message · tychovrahe
fix(core): adjust T3W1 connect screen text position when no menu is shown
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 visual layout fix for the Trezor T3W1 hardware wallet bootloader. It adjusts where the 'waiting for host' text appears on screen when no menu header is shown. There is no security-relevant change.
chore(core): rename screen_connect parameters to better reflect functionality
[no changelog]
62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive pathboot or update path
AI analysis · Informational 15/100
This is a simple code cleanup change that renames a parameter from 'auto_update' to 'show_menu' across several files. The functionality remains exactly the same; only the variable name has been changed to better describe what it actually controls (whether a menu button is shown on the bootloader connection screen). There is no security impact.
refactor(core): move board_capabilities to sec layer
[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 pure code reorganization: it moves the board_capabilities module from the util directory to the sec directory and updates all include paths and build files accordingly. No functionality, logic, or security behavior changes. It is a refactoring with no user-visible or security-relevant effect.
Security candidaterefactor(core): remove circular deps between rtl and sysby cepetr · 1a37ddf1 · Jan 13, 2026 · 26 filesMessage 62 · AdequateInformational 15Details
Commit message · cepetr
refactor(core): remove circular deps between rtl and sys
[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 routine internal code cleanup. It moves the logging header file from one directory to another and splits out a system-exit declaration to remove circular dependencies between two low-level software layers. No security vulnerability is introduced or fixed; the functionality of the code remains the same.
✓ 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 pure code reorganization: it moves the unit_properties module from the util directory to the sec (security) directory and updates all include paths and build files accordingly. The actual logic for reading device properties from one-time-programmable memory, serial numbers, and SD hotswap settings is copied unchanged. There is no functional change and no security fix or vulnerability introduced.
Security candidaterefactor(core): move backup_ram driver from sys to secby cepetr · cb1b9cc4 · Jan 13, 2026 · 23 filesMessage 62 · AdequateInformational 13Details
Commit message · cepetr
refactor(core): move backup_ram driver from sys to sec
[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 13/100
This commit is a pure code reorganization: it moves the backup RAM driver from the 'sys' directory to the 'sec' directory and updates all include paths accordingly. The actual C source code for the driver is identical before and after the move. There is no functional change, no bug fix, and no security patch visible in the diff.
Security candidaterefactor(core): move gfx to io/gfxby cepetr · 47a7ba72 · Jan 13, 2026 · 51 filesMessage 57 · ThinInformational 15Details
Commit message · cepetr
refactor(core): move gfx to io/gfx
[no changelog]
57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
boot or update path
AI analysis · Informational 15/100
This commit is a pure code reorganization: it moves the graphics (gfx) subsystem from the `embed/gfx/` directory into `embed/io/gfx/`, updates all build scripts and include paths accordingly, and renames some internal subdirectories (for example, `fonts/` becomes `terminal/`). The actual graphics logic, functions, and behavior appear unchanged. There is no indication this fixes or introduces a security issue.
Security candidaterefactor(core): split rng module into sys/rng and sec/rng_strongby cepetr · 2761e69f · Jan 13, 2026 · 45 filesMessage 62 · AdequateInformational 14Details
Commit message · cepetr
refactor(core): split rng module into sys/rng and sec/rng_strong
[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
entropy or randomnesscryptography-sensitive pathseed or entropy pathboot or update path
AI analysis · Informational 14/100
This commit is a code reorganization: it splits the random-number generator (RNG) module into two parts. The basic hardware RNG moves from the security subsystem to the system subsystem, while the stronger multi-source RNG stays in the security subsystem under a new name. All call sites are updated to include the correct new header. The actual logic of how random numbers are generated does not change.
refactor(core): move translatations module to io layer
[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 pure code reorganization: it moves the 'translations' module from one directory location to another without changing what the code does. The functions that read, write, and erase translation data in device flash remain identical. There is no visible security bug or fix in the change.
✓ 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 pure code reorganization: it moves the flash memory driver files from one directory (embed/util/flash) to another (embed/sys/flash) and updates all include paths and build scripts accordingly. The actual flash programming, erasing, and one-time-programmable (OTP) logic is copied verbatim, with no functional changes. There is no indication this fixes or introduces a security vulnerability.
✓ 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 simple internal code reorganization: it moves the source-code-management revision identifier (a build-time constant that records which Git commit the firmware was built from) from one internal directory to another. No behavior changes, no security fixes, and no new vulnerabilities are visible in the diff.
✓ 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 pure code reorganization: it moves the 'notify' module from one directory to another and updates all references. No functionality was changed, no bugs were fixed, and no security behavior was altered.
✓ 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 large but straightforward code reorganization: it moves the firmware image handling module from a general utility directory (embed/util/image) into a security-focused directory (embed/sec/image) and updates all include paths and build scripts accordingly. The actual code logic appears unchanged except for the path/namespace adjustments. There is no indication this fixes or introduces a security vulnerability.
Security candidaterefactor(core): move rsod to io/gfx and sec/rsodby cepetr · f0d12275 · Jan 13, 2026 · 28 filesMessage 57 · ThinInformational 15Details
Commit message · cepetr
refactor(core): move rsod to io/gfx and sec/rsod
[no changelog]
57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
boot or update path
AI analysis · Informational 15/100
This commit is a pure code reorganization (refactor) that moves the 'Red Screen of Death' (RSOD) error-display code from one directory to another and updates the build files and #include paths accordingly. No security vulnerability is introduced or fixed; the visible behavior of the device is unchanged.
Security candidaterefactor(core): move power_manager from sys to ioby cepetr · 638f0cb4 · Jan 13, 2026 · 48 filesMessage 57 · ThinInformational 15Details
Commit message · cepetr
refactor(core): move power_manager from sys to io
[no changelog]
57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
boot or update path
AI analysis · Informational 15/100
This commit is a large code refactor that moves the power management subsystem from one internal directory (`sys`) to another (`io`) in the Trezor firmware. It renames include paths, reorganizes files, and adds new battery fuel-gauge and PMIC driver code, but the commit message explicitly labels it as a refactor with '[no changelog]'. There is no indication of a security fix or vulnerability being addressed.
Security candidaterefactor(core): move tamper driver from sys to secby cepetr · 3e3ce55d · Jan 13, 2026 · 9 filesMessage 62 · AdequateInformational 15Details
Commit message · cepetr
refactor(core): move tamper driver from sys to sec
[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 pure code reorganization: it moves the tamper-detection driver files from one directory (sys) to another (sec) and updates all include paths accordingly. The actual tamper-detection logic is unchanged, so this does not fix or introduce a security vulnerability on its own.
Security candidatefix(tests): fix Evolu tests on HW devicesby Martin Pastyřík · d1d28b86 · Jan 13, 2026 · 7 filesMessage 100 · StrongInformational 15Details
Commit message · Martin Pastyřík
fix(tests): fix Evolu tests on HW devices
Evolu tests now do not depend on hardocded values but compute the expected value from the `delegated_idenetity_key` of the tested device. Therefore enabling testing on HW devices where the master key is not initialized to all zeroes.
A check function was added to the `sign_registration` tests to determine if the device has Optiga available. If not, the test will mark itself as `xfail` - we expect Optiga signing to fail if there is no Optiga.
All the Evolu test have been simplified so that the logic is the same for THP and non-THP devices.
Lastly, the verification of certificate chain and Optiga and Tropic signatures and certificates has been refactored from `test_authenticate_device.py` as it is now used in other tests.
[no changelog]
100/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Mentions testing or verification
Why it was queued
signing boundarydefensive validationsigning or wallet pathauthentication path
AI analysis · Informational 15/100
This commit only changes test code for the Trezor hardware wallet. It refactors how tests compute expected cryptographic values so they can run on real hardware devices instead of only on emulators, and moves certificate-verification helper code into a shared test utility. There is no change to the actual firmware or wallet behavior, and no security vulnerability is introduced or fixed.
✓ Descriptive subject✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
boot or update path
AI analysis · Informational 23/100
This commit adds a new internal telemetry feature to the Trezor firmware that records the minimum and maximum battery temperature in a small, protected memory area (backup RAM). It only stores a float value for the coldest and hottest battery readings and does not send data anywhere. There is no obvious security bug in the code, but it is a new subsystem that touches low-level firmware components and could become relevant if future changes connect it to untrusted inputs or expose it externally.
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
update trustboot or update path
AI analysis · Low 26/100
This commit adds downgrade protection for the Secure Monitor (secmon), a small privileged security component that runs alongside the main firmware on Trezor hardware wallets. Previously, only the bootloader and firmware had downgrade protection via monotonic counters stored in secure flash. This change reserves a third monotonic counter, records the secmon version in the image header, and makes the bootloader reject older or rolled-back secmon images during firmware updates and boot. It is a defensive hardening feature, not a fix for an active vulnerability, and the initial secmon monotonic version starts at 0 so existing images remain compatible.
chore(core): bump T3W1 monotonic versions for downgrade protections
[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
update trust
AI analysis · Informational 18/100
This commit simply increases three internal version counters for the Trezor T3W1 hardware wallet from 1 to 2 (or 0 to 1). These counters are used to prevent downgrading to older, potentially less secure firmware, bootloader, or security monitor software. The change itself does not fix a bug or add a feature; it is a routine housekeeping step to keep downgrade protection working after a release. There is no direct security vulnerability shown in the diff.
- Blind signing TRON smart contracts. - Only contract address shown to user. - USDT,USDD transfer tested. - Fee layout imperfect. To be fixed later.
[no changelog]
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
signing boundarycryptography-sensitive pathsigning or wallet path
AI analysis · Moderate 51/100
This commit adds support for signing TRON smart-contract calls (like USDT/USDD transfers) on Trezor hardware wallets. Because the device cannot yet decode the actual token-transfer details, users are shown only the smart-contract address and raw data, meaning they are 'blind signing' the transaction. The commit message explicitly calls this out. There is also a fee-limit check to cap how much TRX can be burned, and a fix changing some timestamp/expiration fields from signed to unsigned integers.
Security candidatefeat(eckhart): back button on confirm_valueby Ioan Bizău · aa857fa3 · Jan 12, 2026 · 7 filesMessage 57 · ThinInformational 15Details
Commit message · Ioan Bizău
feat(eckhart): back button on confirm_value
[no changelog]
57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive pathboot or update path
AI analysis · Informational 15/100
This commit adds a new optional 'back button' to a Trezor screen type called confirm_value. It is a user-interface feature for the upcoming Eckhart hardware model and does not fix or introduce any security vulnerability. The change simply lets callers request a back arrow instead of a cancel cross, and wires that through the Rust UI layer for all supported device layouts.
Security candidaterefactor: drop `ConfirmOutputWithAmount`by Ioan Bizău · d14eeca9 · Jan 12, 2026 · 14 filesMessage 47 · ThinInformational 19Details
Commit message · Ioan Bizău
refactor: drop `ConfirmOutputWithAmount`
[no changelog]
47/100 · ThinMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive pathsigning or wallet pathboot or update path
AI analysis · Informational 19/100
This commit removes a dedicated two-page 'confirm output with amount' screen and replaces it with two separate confirmation prompts for the address and the amount. It is a user-interface refactor, not a fix for a security vulnerability. The change does not introduce obvious security flaws, but it slightly alters how users review transaction details on newer Trezor layouts.
Security candidatefeat: title and subtitle on property pagesby Ioan Bizău · 31026a0d · Jan 12, 2026 · 10 filesMessage 57 · ThinInformational 15Details
Commit message · Ioan Bizău
feat: title and subtitle on property pages
[no changelog]
57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive pathboot or update path
AI analysis · Informational 15/100
This commit is a routine user-interface feature addition. It lets certain 'property' display screens show an optional subtitle and gives callers a way to override the page title. There is no security-relevant change in the diff.