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.
- move keyboard shared code to common [no changelog]
82/100 · StrongMessage clarity
✓ 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
cryptography-sensitive pathboot or update pathauthentication path
AI analysis · Informational 20/100
This commit is almost entirely a test-suite expansion for the Trezor Safe 7 device menu. It adds automated click tests for settings like auto-lock, device label, LED, haptic feedback, brightness, backup checks, notifications, menu traversal, and device wipe. A small amount of production code changed: a new 'led' field was added to the Features protobuf message so the device can report RGB LED support, and a few UI debug-trace strings were improved to make automated testing easier. There is no obvious security vulnerability in the diff.
Security candidatefeat(core/eckhart): no virtual locking btn at homeby obrusvit · 29b0d472 · Oct 2, 2025 · 1 fileMessage 62 · AdequateLow 25Details
Commit message · obrusvit
feat(core/eckhart): no virtual locking btn at home
[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 · Low 25/100
This commit removes a 'virtual lock button' from the Trezor hardware wallet's home screen on the Eckhart layout. Previously, holding a finger anywhere on the home screen (except the bottom action bar) for a set duration could lock the device. Now that gesture is gone. The change is described as a feature tweak, not a security fix, and no security relevance is disclosed in the commit or supplied references.
✓ Subject identifies a change✓ 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 increases version numbers across Trezor firmware components and translation files. There are no code changes that fix or introduce any security behavior, so it has no direct security relevance on its own.
✓ 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 is a code cleanup that rewrites how the Trezor firmware talks to its Bluetooth chip. Instead of sending one big generic 'command' packet that could describe many different actions, the code now uses a separate, specific function for each Bluetooth action (such as turn on, pair, disconnect, erase bonds). The change also tightens the security boundary between the app and the kernel by validating the pairing name and pairing code directly, rather than trusting a caller-built command structure. There is no direct evidence in the commit that this fixes an active security bug, but the old design made it easier for a caller to request unintended operations by crafting command data, and the new design removes that entire class of mistakes.
Security candidatefix(python): uncache transport when waiting for the bootloaderby Roman Zeyde · ded39508 · Oct 2, 2025 · 2 filesMessage 62 · AdequateInformational 23Details
Commit message · Roman Zeyde
fix(python): uncache transport when waiting for the bootloader
[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 trustboot or update path
AI analysis · Informational 23/100
This is a small bug-fix change in the Trezor Python command-line tools. It fixes a situation where the tool would keep using an old cached connection to the device while waiting for the device to reboot into bootloader mode. Now it clears that cached connection and tries to reconnect. There is no direct evidence this is a security vulnerability; it appears to be a reliability/usability fix for firmware updates.
Security candidatefeat(core/eckhart): LED effect in HoldToConfirmby obrusvit · c123574c · Oct 1, 2025 · 4 filesMessage 57 · ThinInformational 17Details
Commit message · obrusvit
feat(core/eckhart): LED effect in HoldToConfirm
[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 17/100
This commit adds a visual LED effect and a short 'finalized' animation to the hold-to-confirm action on Trezor's newer Eckhart-style user interface. It changes when the device reports a confirmation: instead of confirming the instant the user releases the button, the device now waits for a brief 500 ms animation to finish. During that animation it ignores further button input and lights the RGB LED in a color matching the on-screen confirmation. There is no indication this fixes a security bug; it appears to be a user-experience and visual-feedback feature.
Security candidatefix(core): cache host and app name also at credential-based connectionby Roman Zeyde · 4e0467bc · Sep 30, 2025 · 4 filesMessage 77 · AdequateLow 35Details
Commit message · Roman Zeyde
fix(core): cache host and app name also at credential-based connection
If the first pairing is done over USB, there won't be a MAC address so the cache won't be populated.
[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
credential or privilege state
AI analysis · Low 35/100
This commit fixes a bug in Trezor's T3W1 hardware wallet where, if a user first paired their device over USB instead of Bluetooth, the device failed to remember the computer/app name for later use. The fix makes sure the host and app name are saved during credential-based pairing even when there is no Bluetooth MAC address. There is no direct evidence this is a security vulnerability, but missing pairing metadata could weaken future security checks or user trust.
fix(core): exit pairing screen when an already bonded device connects
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 · Low 35/100
This update fixes a Bluetooth pairing screen bug in Trezor hardware wallets. Previously, if an already-paired (bonded) host device connected while the wallet was showing a pairing screen, the wallet did not automatically exit that screen. The fix adds a new internal event, 'pairing not needed,' so the user interface can close the pairing screen in that situation. The change is a user-experience and minor reliability fix; the commit itself does not describe a security vulnerability.
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Names security-relevant behavior explicitly! No meaningful explanatory body
Why it was queued
memory safety
AI analysis · Moderate 58/100
This commit fixes a potential integer overflow in the Trezor hardware wallet's storage code. A variable that holds a flash memory offset was declared as a 16-bit unsigned integer (uint16_t), which could overflow if the sector offset plus the amount of data already written exceeds 65,535. The fix widens that variable to a 32-bit unsigned integer (uint32_t), giving it enough room for larger flash addresses. If exploited, this kind of overflow could corrupt where data is written in the device's storage, potentially leading to data loss or unexpected behavior.
✓ 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 is a routine user-interface redesign for the Trezor hardware wallet (specifically the T3W1/Eckhart layout). It moves the name of the connected app from the Bluetooth connection button onto a separate 'Host Info' screen, and adjusts how long text is clipped in buttons. There is no security-relevant change here.
✓ 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 3/100
This commit swaps out several pre-built binary files for the T3W1 hardware model: a newer bootloader version, a security monitor binary, and a Bluetooth firmware binary. The change is described as a routine chore with no changelog entry. Because the files are binary blobs, the actual code changes inside them cannot be inspected from the diff alone, and there is no stated security relevance.
feat(core/eckhart): waiting for host FwUI function
- last step in the BLE pairing flow - new ble handler mode `WaitingForPairingCompletion` [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
cryptography-sensitive pathsigning or wallet pathboot or update path
AI analysis · Informational 20/100
This commit adds a new on-screen step to the Bluetooth pairing flow on Trezor hardware wallets. After the user confirms a pairing code, the device now shows a 'Waiting for host...' screen and waits for the host computer or phone to finish the pairing. It is a normal user-interface feature, not a fix for a known security bug.
✓ Descriptive subject✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
boot or update path
AI analysis · Informational 15/100
This is a one-line Rust code cleanup that removes two unused color imports (GREY_LIGHT and an extra comma) to silence a Clippy compiler warning. It does not change any program behavior, user interface, or security logic.
✓ Specific, 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 · Informational 3/100
This commit swaps in a new pre-built bootloader binary for the T3W1 hardware model used in QA/testing, and updates the matching cryptographic hashes that the firmware uses to recognize a valid bootloader. The actual source-code changes inside the bootloader are not shown, and the commit message gives no security explanation. On its own, this looks like a routine firmware housekeeping update, not a fix for a known security bug.
✓ 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 20/100
This commit adds informational notifications when a Trezor device is wiped or a Bluetooth pairing is removed. It does not change who can perform these actions or how they are authorized. The wipe/unpair logic itself already existed; the change only tells connected software that the event is happening. There is no obvious security vulnerability here.
Security candidatefeat(core): add notifications on important state changesby tychovrahe · b5982c75 · Sep 25, 2025 · 8 filesMessage 62 · AdequateInformational 19Details
Commit message · tychovrahe
feat(core): add notifications on important state changes
[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
authentication path
AI analysis · Informational 19/100
This commit adds new notification messages that the Trezor device sends when certain things happen, such as locking/unlocking, changing settings, changing the PIN, or disconnecting from Bluetooth. It is a feature addition, not a fix for a known security bug. The change itself does not appear to introduce a vulnerability, though it slightly increases the amount of internal state information broadcast to other parts of the system.
feat(core/bootloader): signal firmware corrupted in features
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 trustboot or update path
AI analysis · Informational 19/100
This commit adds a new flag called firmware_corrupted to the device's Features message, which is sent to the host computer when the Trezor is in bootloader mode. Previously, the existing firmware_present flag only told the host whether any firmware was loaded, but its comment said 'valid firmware loaded.' The change makes the bootloader explicitly report whether the loaded firmware is corrupted, and it updates the comment on firmware_present to clarify it just means firmware is loaded. This is an informational/UX improvement, not a fix for a vulnerability in the device itself.
Security candidaterefactor(core/bootloader): simplify function headers by using one struct with all needed FW infoby tychovrahe · ea5bd4b8 · Sep 25, 2025 · 11 filesMessage 62 · AdequateInformational 15Details
Commit message · tychovrahe
refactor(core/bootloader): simplify function headers by using one struct with all needed FW info
[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 trustboot or update path
AI analysis · Informational 15/100
This commit is a straightforward code cleanup in the Trezor bootloader. It bundles three pieces of firmware information (vendor header, image header, and whether firmware is present) into a single struct and passes that struct around instead of three separate arguments. There is no change to security logic, no bug fix, and no new feature.
Security candidatefix(core/bootloader): timeout FW installation when the next message doesn't arrive in timeby tychovrahe · 3941195a · Sep 25, 2025 · 1 fileMessage 62 · AdequateLow 49Details
Commit message · tychovrahe
fix(core/bootloader): timeout FW installation when the next message doesn't arrive in time
[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 trustboot or update path
AI analysis · Low 49/100
This commit adds a 10-second timeout to the Trezor bootloader's firmware update process. Previously, if the host computer stopped sending firmware pieces during an update, the bootloader could wait forever in a special update mode. The fix makes the device give up and show a failure screen if no next message arrives within 10 seconds. This is a hardening change: it reduces the window during which a device is stuck in a firmware-update state, which could matter if an attacker has physical or local access, but the commit itself does not describe a specific attack or vulnerability.
Security candidatechore(core): make `host_name` & `app_name` required also in `ThpCredentialMetadata`by Roman Zeyde · 5bab2029 · Sep 25, 2025 · 7 filesMessage 62 · AdequateLow 28Details
Commit message · Roman Zeyde
chore(core): make `host_name` & `app_name` required also in `ThpCredentialMetadata`
[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
credential or privilege state
AI analysis · Low 28/100
This commit tightens a data structure used during Trezor's new host pairing protocol (THP). It makes two text fields—host_name and app_name—mandatory instead of optional, and adds runtime checks that they are present before creating a pairing credential. On its own this is a defensive hardening change, not a fix for an active vulnerability. It reduces the chance that a paired host could be stored or shown to the user without an identifiable name, which could help prevent social-engineering or UI-confusion attacks.
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
seed or entropy path
AI analysis · Informational 12/100
This commit removes a small, unexplained workaround in the hardware wallet's random number generator code. The workaround previously added 4 extra bytes to a temporary buffer when generating randomness. The change makes the code cleaner and slightly more correct, but there is no indication it fixes an active security bug. It appears to be routine cleanup.
- instead of drawing the border 1px towards center, make the border 1px wider and draw it at the exact edges - this is to prevent underlying shapes from peeking at the sides - effectively reverts https://github.com/trezor/trezor-firmware/pull/5510
[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✓ Links an issue, advisory, or supporting reference
Why it was queued
boot or update path
AI analysis · Informational 15/100
This commit is a visual design tweak for the Trezor hardware wallet's screen border. It changes how the decorative border is drawn so it sits exactly at the screen edges instead of being inset by one pixel. There is no security relevance: no cryptography, authentication, memory handling, or user-confirmation logic is changed.
fix(core): invalidate THP credential authentication key on `Forget all`
[no changelog]
67/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Names security-relevant behavior explicitly! No meaningful explanatory body
Why it was queued
access controldefensive validationcredential or privilege state
AI analysis · Moderate 58/100
This commit fixes a security bug in the Trezor hardware wallet's Bluetooth handling. When a user chose 'Forget all' Bluetooth pairings, the device was not clearing a special key used for a feature called THP (Trezor Host Protocol) credential authentication. As a result, after reconnecting, the device might trust the other side without asking the user to confirm again. The fix adds a call to invalidate that key whenever all Bluetooth pairings are erased.
✓ 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 pathauthentication path
AI analysis · Informational 20/100
This commit is a code cleanup: it removes unused title, description, and information parameters from the PIN/wipe-code setup confirmation flow and lets each device layout pick the correct text strings internally based on whether the user is setting a PIN or a wipe code. There is no obvious security bug introduced; it is a refactoring change with a [no changelog] tag.
fix(core): temporary fix for RSOD triggered by rng_fill_buffer_strong
[no changelog]
42/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body! Contains work-in-progress language
Why it was queued
entropy or randomnessseed or entropy path
AI analysis · Low 44/100
This commit is a temporary hotfix that disables the Tropic secure-element randomness source in non-production builds to stop a Red Screen of Death (RSOD) crash triggered by the function rng_fill_buffer_strong. The change wraps the Tropic random-buffer mixing step in a PRODUCTION preprocessor guard, so it only runs in production firmware. In non-production/debug builds, the function will fall back to whatever other entropy sources remain (likely the STM32 hardware RNG plus optional optiga mixing). The commit message explicitly calls this a temporary fix and says to delete it later, so it is a workaround rather than a root-cause fix. There is no direct evidence in the commit that this is exploitable, but any change to cryptographic randomness generation in a hardware wallet is a security-sensitive signal.