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.
- Extract from_internal_name classmethod from LayoutType.from_model so callers with only an internal_name string can resolve the layout type without constructing a model object first
This is a small, safe code cleanup in Trezor's Python debug tooling. It splits an existing lookup function into two so developers can resolve a device's screen layout type from just its internal model name, without needing a full model object. There is no security issue visible in the change.
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 13/100
This commit is a test-only refactoring change. It reorganizes how Trezor firmware upgrade tests select emulator models and handle a new hardware model (T3W1) that uses a 'tropic' chip. There is no change to the actual device firmware, wallet logic, or cryptography that end users rely on, so it does not create a security vulnerability.
✓ 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
documentation-only discount
AI analysis · Informational 15/100
This commit only changes internal CI (continuous integration) workflow files for running firmware upgrade tests. It adds a new hardware model (T3W1) to the test matrix, adjusts environment setup for that model, and renames an environment variable value from 'core'/'legacy' to specific model codes like 'T2T1', 'T3W1', 'T1B1'. There is no change to the actual Trezor firmware code, device behavior, or anything users interact with.
✓ 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
documentation-only discount
AI analysis · Informational 15/100
This commit only updates a documentation file explaining how to run internal upgrade tests. It adds instructions for using nix-shell, building the emulator, and selecting which device models to test. There is no code change and no security relevance.
- cargo-audit is cargo subcommand which audits Cargo.toml files for crates containing security vulnerabilities - new makefile targets: - `make -C core audit_rust` to audit firmware dependencies - `make -C rust audit` to audit libs dependencies
[no changelog]
75/100 · AdequateMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Names security-relevant behavior explicitly
AI analysis · Informational 15/100
This commit only adds tooling: it introduces cargo-audit (a Rust dependency vulnerability scanner) into the project's build environment and Makefile targets. It does not change any firmware code, fix any vulnerability, or alter how the device behaves. It is a development/CI hygiene improvement, not a security patch.
Lower-priorityci: use cargo-audit in core workflowby obrusvit · 3f687152 · Apr 15, 2026 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · obrusvit
ci: use cargo-audit in core workflow
[no changelog]
57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100
This commit only adds a new automated security-check step to the project's continuous integration (CI) workflow. It tells GitHub Actions to run `cargo-audit`, a tool that scans Rust dependencies for known security vulnerabilities. There is no change to the actual Trezor firmware code, no bug fix, and no vulnerability being patched.
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100
This commit updates a CI Docker build script used to create container images for Trezor's automated build/test pipeline. It replaces an 'apk update' command with explicit package installation flags and adds 'coreutils' to the installed packages. There is no indication this change fixes or introduces a security vulnerability in the Trezor firmware itself; it is a build-infrastructure maintenance tweak.
Lower-prioritytest(core): fix `InputFlowEthereumSignTxData` on non-Englishby Roman Zeyde · 23c4a815 · Apr 15, 2026 · 1 fileMessage 72 · AdequateInformational 15Details
Commit message · Roman Zeyde
test(core): fix `InputFlowEthereumSignTxData` on non-English
[no changelog]
72/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100
This is a one-line change to a test helper that checks on-screen text during automated Ethereum transaction signing tests. It switches from checking the full screen content to checking only the visible text content when looking for a 'view all data' instruction. This makes the test work correctly when the device interface language is not English. It does not change any firmware behavior or fix any security issue.
chore(core): allow dropping telemetry-related code in build 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
boot or update path
AI analysis · Informational 15/100
This is a routine build-system cleanup. It lets the firmware compile without the optional telemetry feature by replacing a hardcoded feature name with a variable. There is no security bug being fixed here.
refactor(core): introduce "n4w1" feature in SConscript
It should replace checking `TREZOR_MODEL`.
[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
boot or update path
AI analysis · Informational 15/100
This is a clean-up change in the build system for the Trezor hardware wallet firmware. It introduces a dedicated feature flag called 'n4w1' so the code no longer decides behavior based on the hard-coded device model 'T3W1'. There is no user-facing behavior change and no security fix or vulnerability introduced.
AI review queuedchore(deps): bump pytest from 8.4.1 to 9.0.3by dependabot[bot] · e0cf8fc7 · Apr 14, 2026 · 2 filesMessage 88 · StrongInformational 15Details
Commit message · dependabot[bot]
chore(deps): bump pytest from 8.4.1 to 9.0.3
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.4.1 to 9.0.3. - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest/compare/8.4.1...9.0.3)
✓ 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
This is a routine dependency update by an automated bot, bumping the Python testing library pytest from version 8.4.1 to 9.0.3. It only changes version numbers and download hashes in project configuration files. There is no indication of a security fix or vulnerability in the commit itself.
- Updated pillow in uv lock from 12.1.1 to 12.2.0. - Should resolve https://github.com/trezor/trezor-firmware/security/dependabot/121.
[no changelog]
93/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✓ Names security-relevant behavior explicitly
Why it was queued
automated dependency-update discount
AI analysis · Low 37/100
This commit updates the Pillow image-processing library used by Trezor's firmware build tools from version 12.1.1 to 12.2.0. The change is a routine dependency patch intended to fix a security alert flagged by GitHub Dependabot. It only touches the lock file that records which exact package version is downloaded, so it is a defensive fix rather than a change to Trezor's own security code. The actual risk depends on what vulnerability Dependabot reported, which is not described in the commit itself.
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 12/100
This is a minor change to a test helper file that improves how a test checks whether a screen is the 'intro' layout for Ethereum transaction data. It does not change the actual device firmware or any user-facing behavior; it only makes the test assertion more precise. There is no indication this fixes a security issue.
chore(core): add TS7 foreground image for emulator
- due to the distinct display shape, this emulator uses foreground image so that the shape is visible - for that reason, a PNG picture is used with a cutout of the display - LED mock position was moved slightly above the display
[no changelog]
97/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Explains rationale or failure mode
AI analysis · Informational 15/100
This commit is a routine cosmetic update for the Trezor hardware-wallet emulator. It adds a new foreground PNG image so the emulator window shows the correct physical shape of the TS7/T3W1 device, adjusts the mock LED position, and tweaks the window size and touch offsets. There is no indication this changes any real-device firmware, cryptographic code, or security behavior.
test(core): fix InputFlowEthereumSignTxData assertion for Eckhart
[no changelog]
72/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100
This is a tiny test-only change that fixes an assertion in an automated UI test for Ethereum transaction signing. It makes the test check the screen title more consistently across different Trezor device models. There is no change to the actual firmware code that runs on the device, so it cannot affect real users or their crypto assets.
fix(core): re-introduce initial blob confirmation layout for Ethereum
It has been removed in 70c9b0c077 - but UX-wise it should be there for Delizia & Eckhart.
Fixes #6597.
85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
Why it was queued
cryptography-sensitive path
AI analysis · Informational 19/100
This commit restores an initial on-screen summary step when confirming large Ethereum transaction data on newer Trezor device layouts (Delizia and Eckhart). It is a user-experience fix, not a security patch, and does not change how transaction data is validated or signed.
✓ 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
This is a routine dependency update by Dependabot that upgrades the Python imaging library Pillow from version 12.1.1 to 12.2.0 inside an internal battery-testing tool. The change is a single line in a requirements file. There is no indication in the commit that this fixes a known security issue, and the tool is not part of the Trezor firmware that runs on user devices.
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 18/100
This commit updates the Nix package manager version used in Trezor's build containers from 2.4 to 2.31.4, and removes an unnecessary copy of a `pyright/` directory in the Docker image. These are routine CI/build maintenance changes. There is no direct evidence in the commit that this fixes a security vulnerability, though newer Nix versions may include general hardening and bug fixes.
Security candidatefeat(vendor): don't rebuild MicroPython to exclude source line databy Roman Zeyde · b457c817 · Apr 13, 2026 · 6 filesMessage 93 · StrongInformational 17Details
Commit message · Roman Zeyde
feat(vendor): don't rebuild MicroPython to exclude source line data
✓ 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
boot or update path
AI analysis · Informational 17/100
This commit changes how the Trezor firmware build system handles source-line information in its embedded MicroPython interpreter. Previously, enabling or disabling source-line data required rebuilding the MicroPython cross-compiler. After this change, the same compiler binary can include or omit source lines via a command-line flag. This is a build-system convenience and optimization; it does not fix a vulnerability in user-facing code.
build(core): exclude `storage.cache_codec` from THP builds
THP PYOPT=1 builds don't need it.
THP PYOPT=0 builds need DebugLink functionality, but don't use `CodecContext`'s cache-related methods.
Reduces THP build flash usage by ~1kB.
[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 18/100
This is a build-system cleanup for Trezor firmware. It removes an unused storage cache module from a specific firmware variant (THP builds) to save about 1 kB of flash space. The code change also makes sure that when the module is excluded, the few functions that relied on it are skipped too. There is no direct security bug here, but any build-system change that alters which code is compiled into a hardware wallet deserves a quick sanity check.
- fix incorrectly placed connection indicator in some cases - slightly align the label
[no changelog]
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
boot or update path
AI analysis · Informational 15/100
This commit fixes visual alignment of icons and text on the Trezor hardware wallet's homescreen for the Eckhart layout. It adjusts where the connection indicator and device label are drawn so they line up correctly with the battery icon. There is no security relevance in this change.
Lower-prioritybuild(core): use portable sed languageby matejcik · a918d4ae · Apr 10, 2026 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · matejcik
build(core): use portable sed language
that works on macos at least
57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100
This commit changes a build script to use a more portable way of writing sed commands. It replaces a non-standard regular-expression feature with one that works on macOS. There is no security relevance: the change only affects how source code is preprocessed during firmware builds and does not alter runtime behavior or introduce any vulnerability.
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 24/100
This commit increases the secure monitor (secmont) stack size from 12 KB to 80 KB on Trezor hardware wallets and shifts memory layout to make room for it. A larger stack reduces the chance that a security-critical component runs out of memory and misbehaves, but the change itself is a routine resource adjustment, not a proven fix for an active attack. The commit does not describe any security bug or credit a researcher.
Lower-prioritychore(l10n): update and run blanker script [no changelog]by Michal Kazda · 4fc92b8e · Apr 10, 2026 · 3 filesMessage 77 · AdequateInformational 15Details
Commit message · Michal Kazda
chore(l10n): update and run blanker script [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
translation-only discount
AI analysis · Informational 15/100
This commit is a routine localization update. It regenerates translation files so that some on-screen text strings are left blank for certain device models or languages while keeping them present for others. There is no code behavior change, no bug fix, and no security relevance.
Lower-prioritydocs: remove SECURITY.md to fall back to the organization defaultby Jan Komarek · f45b057b · Apr 9, 2026 · 2 filesMessage 67 · AdequateInformational 15Details
Commit message · Jan Komarek
docs: remove SECURITY.md to fall back to the organization default
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
documentation-only discount
AI analysis · Informational 15/100
This commit simply removes the repository's own SECURITY.md file and updates the README to point users to the organization's default security policy on GitHub instead. It is a documentation-only change with no code modifications and no direct security impact on the firmware or device.