TZ
← All projectsTrezor

Trezor firmware

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

BitcoinHardware walletsNormal
Repository coverage

2661 commits in the local evidence base

Every captured commit receives deterministic security triage and a separate communication-quality score. Security candidates and broader second-pass signals receive full-patch Ollama analysis.

916security candidates311second-pass queue2655AI analyses
336commits · 30 days
588commits · 60 days
1363commits · 180 days
2648commits · 365 days
Backfill bands
Aug 5 → Feb 61298 seen115 candidatesComplete
Feb 6 → Jun 6775 seen58 candidatesComplete
Jun 6 → Jul 6217 seen13 candidatesComplete
Jul 6 → Aug 5360 seen54 candidatesComplete
Commit communication

Does the history explain itself?

Message quality measures whether a commit identifies its scope, purpose, rationale, testing, and supporting references. It does not change the security-severity score.

66/100 average clarity
473Strong · 80–100
1321Adequate · 60–79
862Thin · 40–59
5Opaque · 0–39
Read the scoring rubric →
Developer activity

Who is changing the project?

Public Git author strings; identities are not independently verified.

DeveloperCommitsCandidatesAnalyzedHigh riskMessage avg.
tychovrahe292104292461
Roman Zeyde572177571271
PrisionMike945994273
Andrew Kozlik712470265
obrusvit21376213164
Jakub Janků22919182
Martin Pastyřík23823173
cepetr19682196059
Ioan Bizău23076230059
M1nd3r20671206071
Lukas Bielesch846784067
Martin Milata17446174063
Analysis record

Published AI watches

Last scanned 55 minutes ago

Informational 18 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(core): remove sha1 from regular FW

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
16d15774by M1nd3r+0−2006 files
No security note in commit
Low 27 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(crypto): pass static public key to `noise_xxpsk3_*_init()`

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
1b3128a4by Ondřej Vejpustek+20−92 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(crypto): change order of parameters

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.

33a119eeby Ondřej Vejpustek+15−151 file
No security note in commit
Informational 15 AI analysisMessage 47 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(crypto): prefix enums

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 …

f1c74046by Ondřej Vejpustek+26−222 files
No security note in commit
Low 37 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

fix(crypto): prevent calling `memzero(NULL, ...)`

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
0394e934by Ondřej Vejpustek+11−51 file
No security note in commit
Informational 18 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(crypto): return remote static key from `noise_xxpsk3_*_handle_*()`

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
3ead1aa6by Ondřej Vejpustek+79−423 files
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(xtask): rename ProjectProfile to ProjectConfig

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…

581b37bcby cepetr+18−182 files
No security note in commit
Informational 15 AI analysisMessage 47 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(xtask): introduce ResolvedBuildArgs

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…

c24d1be8by cepetr+99−295 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(xtask): make build args tristate

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…

271e249aby cepetr+57−561 file
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(xtask): introduce build options

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…

75085e2aby cepetr+275−2007 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(xtask): introduce build presets

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…

eefe8f7fby cepetr+397−419 files
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(xtask): upgrade manifest.yaml for tf-tools 0.3.0

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…

57b28b89by cepetr+86−1351 file
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(core): add tf-tools 0.3.1+ configuration file

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

e554f618by cepetr+8−01 file
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(xtask): rename ResolvedBuild to ResolvedBuildFeatures

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…

aaa2780bby cepetr+5−52 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

fix(core): fix up clippy warnings in storage.rs

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…

62354461by cepetr+2−21 file
No security note in commit
Informational 15 AI analysisMessage 47 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(xtask): simplify dependencies

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…

6268349fby cepetr+9−193 files
No security note in commit
Informational 15 AI analysisMessage 47 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

docs: add xtask documentation

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 …

4879dababy cepetr+296−03 files
No security note in commit
Informational 17 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(xtask): introduce project-toml build-options

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
d44de007by cepetr+681−40817 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

ci(core): fix nightly ARM emulator filename

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…

ab95f08fby Martin Milata+3−01 file
No security note in commit
Informational 12 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(vendor): avoid micropython submodule noise in git status

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.

06cab32bby Martin Milata+1−11 file
No security note in commit
Repository ledger

Explore captured commits

Expand any commit for its author, full message, clarity score, changed files, triage signals, analysis, and source link.

Security candidatechore(python): add ROOT signing public keys [no changelog]by M1nd3r · affeefa6 · Aug 18, 2025 · 1 fileMessage 77 · AdequateInformational 21Details
Commit message · M1nd3r

chore(python): add ROOT signing public keys
[no changelog]

77/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
signing boundaryboot or update path
AI analysis · Informational 21/100

This commit simply fills in previously empty lists of official production 'root' public keys used by Trezor's Python library to validate firmware signatures. These are public keys, not private secrets, so adding them does not by itself create a vulnerability. It is a routine configuration update replacing placeholder TODO entries with real key values.

Security candidatefeat(core): remove `tropic.get_certificate()`by Ondřej Vejpustek · b7f2e6f5 · Aug 18, 2025 · 15 filesMessage 57 · ThinInformational 12Details
Commit message · Ondřej Vejpustek

feat(core): remove `tropic.get_certificate()`

[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 path
AI analysis · Informational 12/100

This commit removes an unused function called tropic.get_certificate() from the Trezor firmware. The function was already a stub that did nothing useful: it returned success without actually fetching any certificate. The change is a cleanup, not a security fix, and does not appear to address any active vulnerability.

Security candidatechore(core/eckhart): update tutorial screenby Lukas Bielesch · 093ad5f6 · Aug 18, 2025 · 19 filesMessage 72 · AdequateInformational 15Details
Commit message · Lukas Bielesch

chore(core/eckhart): update tutorial screen

- add independent screen background component
[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
signing or wallet pathboot or update path
AI analysis · Informational 15/100

This commit is a routine user-interface refresh for the Trezor Safe 7 tutorial. It replaces some tutorial text, adds new icons, and extracts the screen background drawing into a reusable component. There is no security-relevant change visible in the code.

Security candidatefix(core/bootloader): improve failed communication behaviorby tychovrahe · 7ee86377 · Aug 18, 2025 · 1 fileMessage 62 · AdequateLow 32Details
Commit message · tychovrahe

fix(core/bootloader): improve failed communication behavior

[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 32/100

This bootloader patch changes how the Trezor device handles a failed USB/communication write. Previously, if sending a packet failed, the bootloader would call an 'ensure' function that effectively halted or panicked the device. Now the function returns a failure status up to the caller instead. This is a hardening improvement that makes the bootloader more resilient to communication errors, but the commit message frames it only as a behavior improvement with no changelog.

Security candidatefeat(bolt): SLIP-24 payment requestsby Ioan Bizău · b85ab377 · Aug 15, 2025 · 8 filesMessage 57 · ThinInformational 18Details
Commit message · Ioan Bizău

feat(bolt): SLIP-24 payment requests

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
signing or wallet pathboot or update path
AI analysis · Informational 18/100

This commit adds on-device user-interface support for SLIP-24 payment requests on the Trezor Model T (Bolt layout). It does not change transaction validation, cryptography, or signing logic. Instead, it wires up new confirmation screens so users can review payment-request details (provider, refund addresses, swap/trade details, fees) before signing. Existing tests that previously skipped Model T are now enabled for it, and new UI test hashes are recorded. There is no direct evidence of a security vulnerability in this patch.

Security candidatefix(python): fix BootloaderV2Image verify [no changelog]by M1nd3r · 7f5df8fb · Aug 15, 2025 · 1 fileMessage 87 · StrongModerate 57Details
Commit message · M1nd3r

fix(python): fix BootloaderV2Image verify
[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
update trustboot or update path
AI analysis · Moderate 57/100

This commit fixes the verification logic for Trezor bootloader version 2 images in the Python firmware library. Previously, the code checked the elliptic-curve (EC) signature against only the Merkle root digest. The fix now hashes that digest together with the post-quantum (SLH) signature first, matching the actual signing procedure. Without this fix, a valid-looking bootloader signature could be accepted even if the SLH signature was wrong or missing, weakening the dual-signature security check.

Security candidatechore(tests): make go to menu item an actionby Lukas Bielesch · 65b753df · Aug 15, 2025 · 15 filesMessage 67 · AdequateInformational 15Details
Commit message · Lukas Bielesch

chore(tests): make go to menu item an action

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
signing or wallet pathauthentication path
AI analysis · Informational 15/100

This is a routine test-infrastructure change. It moves a helper that clicks menu items in automated tests into a shared debug-link action and updates many test scripts to use it. There is no change to the firmware's security behavior, no fix for a vulnerability, and no user-facing feature.

Security candidatechore(core): change string tuple to propertytypeby Lukas Bielesch · c827a009 · Aug 15, 2025 · 26 filesMessage 57 · ThinInformational 19Details
Commit message · Lukas Bielesch

chore(core): change string tuple to propertytype

[no chengelog]

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 pathsigning or wallet pathboot or update pathauthentication path
AI analysis · Informational 19/100

This is a large internal refactoring of how Trezor's user-interface passes key-value display data from Python apps to the Rust firmware. It replaces two-element string tuples with a new three-element 'PropertyType' that adds a flag indicating whether a value is raw data. The change touches many coin apps and UI layouts but is described by the vendor as a routine chore with no changelog entry. There is no direct evidence in the commit of a security vulnerability or fix.

Security candidatechore(core): add default params to propslistby Lukas Bielesch · 913ac8ed · Aug 15, 2025 · 12 filesMessage 57 · ThinInformational 15Details
Commit message · Lukas Bielesch

chore(core): add default params to propslist

[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 is a routine code cleanup in the Trezor hardware wallet's user interface layer. It moves default font and spacing choices for a UI component called PropsList into each device's theme file, so callers can use a simpler constructor. There is no change to security logic, cryptography, or how user data is handled.

Security candidatefeat(core): introduce props spacingby Lukas Bielesch · 2e082f4f · Aug 15, 2025 · 7 filesMessage 57 · ThinInformational 15Details
Commit message · Lukas Bielesch

feat(core): introduce props spacing

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 user-interface layout tweak for Trezor hardware wallets. It adds configurable vertical spacing between key/value property pairs shown on device screens. There is no security-relevant change, no bug fix, and no handling of secrets or memory.

Security candidatefeat(core): adjust RSODby obrusvit · 7d82a8a5 · Aug 14, 2025 · 7 filesMessage 40 · ThinInformational 14Details
Commit message · obrusvit

feat(core): adjust RSOD

[no changelog]

40/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive pathboot or update path
AI analysis · Informational 14/100

This commit is a cosmetic/user-interface change. It updates the text and styling shown on the hardware wallet's red error screens (RSOD), such as when a wipe code is entered or too many PIN attempts occur. The messages are rewritten in sentence case instead of all capitals, and some fonts/layouts are adjusted. There is no indication this fixes or introduces a security vulnerability.

Security candidatefeat(core): use LED colors for diode in Eckhartby obrusvit · 8c171c2a · Aug 13, 2025 · 3 filesMessage 72 · AdequateInformational 15Details
Commit message · obrusvit

feat(core): use LED colors for diode in Eckhart

- change affects Homescreen LED color
- newly RSOD ErrorScreen uses LED diode

[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 is a cosmetic UI change for the Trezor hardware wallet's Eckhart design. It makes the device's RGB LED light up with specific colors on the homescreen and during red-screen error states, matching the screen's theme. There is no security-relevant change to how data is protected, how keys are handled, or how the device communicates.

Security candidatefeat(core): extend THP credentials with app_nameby Martin Milata · 538aa5ce · Aug 13, 2025 · 8 filesMessage 57 · ThinInformational 19Details
Commit message · Martin Milata

feat(core): extend THP credentials with app_name

[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
credential or privilege state
AI analysis · Informational 19/100

This commit adds a new optional 'app_name' field to Trezor's Trusted Host Pairing (THP) credentials. It lets the device display both the application name and the host/browser name during pairing and connection prompts, making it clearer to users which app is requesting access. There is no direct evidence in the commit that this fixes an active security vulnerability; it reads as a user-experience and metadata improvement.

Security candidatechore(core): remove unusued code from BldHeaderby obrusvit · 12cafe7b · Aug 13, 2025 · 2 filesMessage 57 · ThinInformational 15Details
Commit message · obrusvit

chore(core): remove unusued code from BldHeader

[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 is a routine cleanup commit that removes unused code from a bootloader UI header component in the Trezor firmware. It deletes an unused left-button feature and switches one screen to use a standard close-button helper. There is no security fix or behavior change visible in the diff.

Security candidatechore(core): remove unused defineby cepetr · 2f74e03e · Aug 12, 2025 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · cepetr

chore(core): remove unused define

[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 simply removes an unused compiler flag named USE_SVC_SHUTDOWN from the firmware build script. There is no functional code change, no bug fix, and no security-relevant behavior altered. It is a routine cleanup.

Security candidaterefactor(core): remove circular dependencies, new 'storage' featureby cepetr · 9951c962 · Aug 12, 2025 · 43 filesMessage 62 · AdequateInformational 17Details
Commit message · cepetr

refactor(core): remove circular dependencies, new 'storage' feature

[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
seed or entropy pathboot or update path
AI analysis · Informational 17/100

This is a large internal code reorganization in Trezor's embedded firmware. It moves flash/storage headers and build flags around so different firmware images (bootloader, kernel, production test, etc.) declare more explicitly which features they need. There is no obvious security bug introduced, but the change touches low-level memory-layout and storage code, so any mistake could in principle affect how secrets are stored. The commit itself is labeled a refactor and includes no changelog.

Security candidaterefactor(core): cleanup storage syscalls, prepare early initializationby cepetr · 8a8ecdfc · Aug 12, 2025 · 26 filesMessage 62 · AdequateInformational 11Details
Commit message · cepetr

refactor(core): cleanup storage syscalls, prepare early initialization

[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 11/100

This commit is a code cleanup and refactoring change in Trezor firmware. It replaces the old storage_init() function, which required callers to fetch their own random entropy (salt), with a new storage_setup() helper that fetches entropy internally. It also removes the direct entropy_get() system call from the non-secure kernel interface. There is no direct evidence in the commit that this fixes an active security vulnerability; it appears to be architectural preparation for future initialization changes.

Security candidaterefactor(core): simplify entropy module, relocate/rename to storage_saltby cepetr · 75028216 · Aug 12, 2025 · 12 filesMessage 67 · AdequateInformational 12Details
Commit message · cepetr

refactor(core): simplify entropy module, relocate/rename to storage_salt

[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
entropy or randomness
AI analysis · Informational 12/100

This commit is a code cleanup: it renames the 'entropy' module to 'storage_salt' and moves it into the storage subsystem. The same device-unique salt logic (CPU ID plus one-time-programmable randomness block, or a master-key-derived salt on newer devices) is preserved, just called at a different point during storage setup rather than at boot. There is no indication this fixes a security bug or changes cryptographic behavior.

Security candidatefeat(core/tools): make nrf update script more universal and allow updating boardloader with itby tychovrahe · 24e318de · Aug 12, 2025 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · tychovrahe

feat(core/tools): make nrf update script more universal and allow updating boardloader with it

[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 developer tooling refactor. It renames and generalizes an internal Python helper script used to upload firmware to Trezor hardware over a USB serial port, so it can handle both nRF chip updates and boardloader updates. There is no change to device firmware, no user-facing feature, and no security fix or vulnerability indicated in the diff or commit message.

Security candidaterefactor(core/prodtest): unify binary update functionby tychovrahe · 2454d37d · Aug 12, 2025 · 4 filesMessage 62 · AdequateInformational 11Details
Commit message · tychovrahe

refactor(core/prodtest): unify binary update function

[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 11/100

This commit is a code cleanup that merges two nearly identical firmware-update helpers into one shared function. There is no indication it fixes or introduces a security bug; it is a routine refactoring in an internal production-testing tool.

Security candidatechore(core/prodtest): improve nrf-update and bootloader-update description in readmeby tychovrahe · d5d38b21 · Aug 12, 2025 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · tychovrahe

chore(core/prodtest): improve nrf-update and bootloader-update description in readme

[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 trustdocumentation-only discount
AI analysis · Informational 15/100

This commit only updates a README documentation file for an internal production-testing tool. It adds a sentence telling users which helper scripts to run when updating bootloader and nRF firmware binaries. No code, build scripts, firmware logic, or security behavior was changed.

Security candidatefix(core): don't reuse `FORBIDDEN_KEY_PATH` exception objectby Roman Zeyde · f0015e5e · Aug 12, 2025 · 3 filesMessage 85 · StrongLow 42Details
Commit message · Roman Zeyde

fix(core): don't reuse `FORBIDDEN_KEY_PATH` exception object

Following https://github.com/trezor/trezor-firmware/issues/5472#issuecomment-3174382038.

[no changelog]

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
authentication path
AI analysis · Low 42/100

This commit fixes a subtle bug where the same error object was reused every time a forbidden key path was accessed. In Python/MicroPython, reusing a single exception instance can cause problems if something later modifies or inspects the raised error, because the same object carries state from one error site to another. The fix creates a fresh exception object each time, which is safer and more correct, but the commit message and diff do not clearly describe an active security vulnerability.

Security candidatechore(core): fix a small typo in `thp_common.py`by Roman Zeyde · 8b06fdac · Aug 12, 2025 · 10 filesMessage 72 · AdequateInformational 15Details
Commit message · Roman Zeyde

chore(core): fix a small typo in `thp_common.py`

Also, use `log._min_level` to suppress debug logging.

[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
cryptography-sensitive pathauthentication path
AI analysis · Informational 15/100

This commit is a minor cleanup in Trezor's test code. It fixes a spelling mistake in a helper function name and changes how debug logging is silenced during automated tests. It does not affect the actual device firmware or any user-facing security behavior.

Security candidatefix(build): no ui_debug_overlay only in prodby obrusvit · 384e0157 · Aug 11, 2025 · 1 fileMessage 57 · ThinLow 26Details
Commit message · obrusvit

fix(build): no ui_debug_overlay only in prod

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

This commit adjusts when a firmware feature called 'ui_debug_overlay' is enabled during the build process. Previously, it was enabled for all optimized builds (PYOPT), which likely includes production releases. Now it is only enabled alongside other debug features when debug mode (PYOPT='0') is active. The change prevents a debug UI overlay from being compiled into production firmware.

Security candidatefix(core): fix BLE pairingby tychovrahe · 8d654150 · Aug 11, 2025 · 17 filesMessage 57 · ThinLow 36Details
Commit message · tychovrahe

fix(core): fix BLE pairing

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

This commit fixes Bluetooth Low Energy (BLE) pairing behavior in the Trezor hardware wallet firmware. It changes how the device advertises itself, handles pairing requests, disconnects existing connections before pairing, and resets the advertising name after pairing ends. The changes are framed as a functional bug fix rather than a security fix, but they touch on sensitive pairing state management that could affect whether an attacker could trick the device into pairing unexpectedly or stay connected when it should not.