TZ
← All projectsTrezor

Trezor firmware

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

BitcoinHardware walletsNormal
Repository coverage

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

926security candidates315second-pass queue2669AI analyses
331commits · 30 days
559commits · 60 days
1351commits · 180 days
2618commits · 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
488Strong · 80–100
1333Adequate · 60–79
867Thin · 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 Zeyde583183578272
PrisionMike945994273
Andrew Kozlik742572266
obrusvit21376213164
Jakub Janků22919182
Martin Pastyřík24823173
cepetr19782196059
Ioan Bizău23076230059
M1nd3r21173208071
Lukas Bielesch846784067
Martin Milata18146176063
Analysis record

Published AI watches

Last scanned 49 minutes ago

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

chore: remove libtropic's pin to develop branch

This commit removes a single line from the project's Git submodule configuration. It stops pinning the libtropic submodule to the 'develop' branch, meaning the project will now use the submodule's default branch (likely 'main' or 'master')…

8290eeefby M1nd3r+0−11 file
No security note in commit
Low 37 AI analysisMessage 70 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(core/embed): clear temporary buffer across Optiga/Tropic calls

This is a hardening change for the random number generator inside Trezor hardware wallets. It makes sure that temporary memory holding secret random values from the Optiga and Tropic security chips is wiped immediately after use, rather th…

Sensitive intermediate buffer not cleared promptlyPotential stale-buffer reuse across RNG source boundariesDefense-in-depth memory sanitization for secure-element entropy
01ebda93by Roman Zeyde+2−21 file
No security note in commit
Informational 15 AI analysisMessage 72 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

test(core/ethereum): EIP-7702 tuple nonce must be non-zero

This commit only changes test data and expected screen fingerprints for Trezor's Ethereum EIP-7702 signing tests. It replaces one test case that used a nonce of 0 with the same scenario using a nonce of 67, because the real-world protocol …

Test-only change with no production code modificationEIP-7702 tuple nonce constraint reflected in test dataExpected UI test hashes regenerated for renamed test vector
76cd2ed4by Roman Zeyde+28−282 files
No security note in commit
Informational 15 AI analysisMessage 72 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

test(core): drop an unused parameter of `make_payment_request()`

This commit only cleans up test code by removing an unused 'session' argument from a helper function used in automated tests. It does not change the actual Trezor firmware or any code that runs on the device, so it has no security impact f…

6dd19fdcby Roman Zeyde+0−188 files
No security note in commit
Informational 15 AI analysisMessage 85 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

build(core): propagate emulator feature from projects

This commit is a build-system cleanup for the Trezor firmware's Rust code. It changes how the 'emulator' feature flag is passed between different software components. The firmware project no longer supports the emulator feature (which make…

5642074cby matejcik+5−44 files
No security note in commit
Informational 15 AI analysisMessage 85 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

fix(build-docker): stop swallowing pub-bin copy errors

This change fixes a build script that was ignoring copy errors. Previously, the script would silently ignore any failure when copying public binary files, which could hide real problems. Now it only skips the copy when the file genuinely d…

Build script silently ignored copy failures before this fixFix removes unconditional `|| true` error suppressionKnown-benign missing files are now explicitly skipped with a file existence check
d829eda8by Andrew Kozlik+4−11 file
No security note in commit
Low 27 AI analysisMessage 93 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(core): digest EIP-1559/EIP-7702 magic without RLP encoding

This commit is a small internal cleanup in Trezor's Ethereum signing code. It changes how two special 'magic' bytes (the transaction type markers for newer Ethereum transaction formats) are fed into the cryptographic hash. Previously the c…

Refactor of cryptographic hashing path for Ethereum transaction signingRemoval of implicit assumption that RLP encodes small integers as single bytesChange affects EIP-1559 and EIP-7702 transaction type markers
2362bc6fby Roman Zeyde+6−32 files
No security note in commit
Informational 15 AI analysisMessage 98 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

test(core): test RLP self-encoding bytestrings

This commit only adds a new unit test to the Trezor firmware codebase. It verifies that very short Ethereum RLP-encoded byte strings and small positive integers encode to themselves, which is a known property of the RLP specification. No p…

41538733by Roman Zeyde+16−01 file
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

docs: fix links outside book root

This commit only fixes broken or awkward documentation links inside the project's user guide. It replaces relative links that point outside the documentation folder with internal placeholder files or direct GitHub URLs. There is no change …

0d8d4b1bby Martin Milata+14−810 files
No security note in commit
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
Repository ledger

Explore captured commits

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

Lower-priorityrefactor(core): use `in_clip` in marqueeby Ioan Bizău · 0f5c3eaa · Sep 11, 2025 · 2 filesMessage 80 · StrongInformational 15Details
Commit message · Ioan Bizău

refactor(core): use `in_clip` in marquee

The use of `in_window` caused issues with the vertical menu, which uses
`in_clip` internally. I had hacked around these problems using the
`y_offset`, but switching to `in_clip` solves all issues and is cleaner.

[no changelog]

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
AI analysis · Informational 15/100

This is a small internal code cleanup in the Trezor firmware's user-interface code. It changes how a scrolling text effect (marquee) clips its drawing to the screen, removing a manual vertical offset workaround. There is no indication this change fixes a security vulnerability or affects device security.

Security candidatefeat(eckhart): menu item subtext can be a marqueeby Ioan Bizău · f4b52d8c · Sep 11, 2025 · 2 filesMessage 57 · ThinInformational 15Details
Commit message · Ioan Bizău

feat(eckhart): menu item subtext can be a marquee

[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 user-interface feature change for the Trezor hardware wallet's Eckhart design. It replaces a static text truncation behavior with a scrolling marquee animation for long subtext labels in menu items. There is no security-relevant change visible in the code.

Lower-priorityfeat(core): trim strings to specific bytes' limitby Roman Zeyde · 49f45373 · Sep 10, 2025 · 2 filesMessage 57 · ThinInformational 12Details
Commit message · Roman Zeyde

feat(core): trim strings to specific bytes' limit

[no changelog]

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 12/100

This commit adds a new helper function that shortens text strings so they do not exceed a specified byte size. It is a routine feature addition with no obvious security bug, and there is no disclosed security issue tied to it.

Lower-prioritychore(python): bump `munch` to avoid `UserWarning`by Roman Zeyde · 3dca4d84 · Sep 10, 2025 · 2 filesMessage 74 · AdequateInformational 15Details
Commit message · Roman Zeyde

chore(python): bump `munch` to avoid `UserWarning`

[no changelog]

74/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Explains rationale or failure mode! No meaningful explanatory body
AI analysis · Informational 15/100

This commit simply updates a Python helper library called 'munch' from version 2.x to version 4.x in the project's dependency files. The stated reason is to remove a harmless user warning. There is no indication this change fixes or introduces a security problem.

Lower-priorityfix(core): increase bonds count immediately after receiving pairing completed messageby tychovrahe · b9d00529 · Sep 10, 2025 · 1 fileMessage 62 · AdequateLow 34Details
Commit message · tychovrahe

fix(core): increase bonds count immediately after receiving pairing completed message

[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
AI analysis · Low 34/100

This commit fixes a bookkeeping bug in the Bluetooth pairing code of Trezor hardware wallets. The device now correctly increments its count of bonded peers immediately when it receives confirmation that pairing completed. Previously, the count may have been updated late or missed, which could cause the wallet to incorrectly think it had no bonded Bluetooth devices or to allow more pairings than intended. The change is small and defensive, but the exact security consequences depend on how the stale count was used elsewhere in the firmware.

Security candidatefix(core/bootloader): increase wipe bonds timeoutby tychovrahe · 97c041f5 · Sep 10, 2025 · 1 fileMessage 57 · ThinInformational 23Details
Commit message · tychovrahe

fix(core/bootloader): increase wipe bonds timeout

[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
update trustboot or update path
AI analysis · Informational 23/100

This commit increases a timeout in the Trezor bootloader from 100 to 300 ticks while wiping Bluetooth pairing information ('bonds'). A too-short timeout could cause the wipe operation to fail or behave inconsistently if the Bluetooth chip takes longer to respond. The change is a hardening fix, not a clear-cut vulnerability patch, and the commit message does not describe any security impact.

Lower-priorityfeat(core): remove suspended charging mode from power manager.by kopecdav · 29851ab5 · Sep 10, 2025 · 3 filesMessage 62 · AdequateInformational 21Details
Commit message · kopecdav

feat(core): remove suspended charging mode from power manager.

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

This commit removes a special 'suspended charging' mode from the Trezor hardware wallet's power manager. Previously, if the device was suspended while plugged into USB or wireless power, it would wake up periodically to update the battery fuel gauge using actual charging current. Now it always uses a fixed self-discharge estimate instead. This is a feature simplification, not a clear security fix. It could make the displayed battery percentage slightly less accurate when charging while suspended, but there is no direct evidence it creates a security vulnerability.

Lower-priorityfeat(core): introduce charging rgb led effect into the suspend module.by kopecdav · bd699c69 · Sep 10, 2025 · 3 filesMessage 62 · AdequateInformational 18Details
Commit message · kopecdav

feat(core): introduce charging rgb led effect into the suspend module.

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

This commit changes how the Trezor hardware wallet's RGB LED behaves when the device is suspended while charging. Previously the LED driver was fully shut down; now it stays partially active to show a charging light effect. There is no obvious security bug in the change itself, but it slightly increases the amount of code that runs before the device enters its deepest sleep state.

Lower-priorityfeat(core): add pm_is_charging function to power manager api.by kopecdav · cde1f430 · Sep 10, 2025 · 5 filesMessage 62 · AdequateInformational 13Details
Commit message · kopecdav

feat(core): add pm_is_charging function to power manager api.

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

This commit adds a new helper function that reports whether the Trezor device is currently charging. It also refactors one existing suspend/resume check to use that helper. There is no indication of a security bug being fixed; it appears to be a routine feature/refactoring change.

Lower-prioritychore(core): remove unused macro.by kopecdav · 86ccd77d · Sep 10, 2025 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · kopecdav

chore(core): remove unused macro.

[no changelog]

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 simply deletes one unused macro named PM_SUSPENDED_CHARGING_TIMEOUT_S from a header file in the Trezor firmware's power management code for the STM32U5 chip. A macro is a named constant used by programmers; 'unused' means no code referenced it anymore. There is no functional change, no bug fix, and no security relevance visible in the change.

Lower-priorityfeat(core): add __WFI to suspend charging loop.by kopecdav · f5ec327c · Sep 10, 2025 · 1 fileMessage 57 · ThinInformational 11Details
Commit message · kopecdav

feat(core): add __WFI to suspend charging loop.

[no changelog]

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

This commit adds a single CPU instruction called __WFI (Wait For Interrupt) inside the charging loop of a Trezor hardware wallet's suspend routine. It tells the processor to idle until an interrupt occurs, which is a normal power-saving measure. There is no direct evidence in the commit that this fixes a security vulnerability; it appears to be a power-management or stability improvement.

Lower-priorityfeat(core): add suspend, resume and wakeup params into rgb led driver.by kopecdav · e72d420c · Sep 10, 2025 · 2 filesMessage 62 · AdequateInformational 11Details
Commit message · kopecdav

feat(core): add suspend, resume and wakeup params into rgb led driver.

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

This commit adds new power-management functions to the RGB LED driver in Trezor's hardware wallet firmware. It lets the device remember what LED effect was running before sleep, then restore it after waking up. There is no obvious security bug in the change itself.

Lower-priorityfeat(core): Update charging state evaluation.by kopecdav · 1ce4b92e · Sep 10, 2025 · 1 fileMessage 57 · ThinInformational 11Details
Commit message · kopecdav

feat(core): Update charging state evaluation.

[no changelog]

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

This commit changes the order in which a Trezor hardware wallet decides whether its battery is charging, discharging, or idle. It now asks a dedicated helper function first instead of relying only on raw current readings. There is no indication in the commit that this fixes a security problem; it appears to be a routine improvement to charging-state detection.

Security candidatebuild(crypto): fix CI build errorby Roman Zeyde · d166c9e7 · Sep 10, 2025 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · Roman Zeyde

build(crypto): fix CI build error

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

This commit changes two fixed text strings inside the ChaCha20 code from C string literals to explicit character arrays. The strings are public constants used by the ChaCha20 algorithm ('expand 32-byte k' and 'expand 16-byte k'). The commit title says it fixes a CI build error, and there is no evidence in the diff or commit message of any security bug, memory issue, or behavior change beyond how the compiler stores these constants.

Security candidatechore(crypto): update secp256k1 submodule to 0.7.0by Roman Zeyde · 9491ab65 · Sep 10, 2025 · 1 fileMessage 62 · AdequateInformational 11Details
Commit message · Roman Zeyde

chore(crypto): update secp256k1 submodule to 0.7.0

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

This commit updates a bundled cryptographic library (secp256k1-zkp) from one version to another. No actual code changes are shown, and the commit message does not describe any security fix. On its own, this looks like a routine dependency maintenance update.

Lower-priorityfeat(core/firmware): add battery SoC to Featuresby obrusvit · 05a19e72 · Sep 10, 2025 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · obrusvit

feat(core/firmware): add battery SoC to Features

[no changelog]

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 adds a new piece of information—battery charge percentage (SoC, State of Charge)—to the device's public 'Features' response. It only reads a value from the power manager and exposes it. There is no security-sensitive change: no new permissions, no bypass of protections, no handling of secrets, and no memory-safety issue visible in the diff.

Lower-priorityfeat(core): expose battery SoC to uPyby obrusvit · a020ffe7 · Sep 10, 2025 · 2 filesMessage 72 · AdequateInformational 15Details
Commit message · obrusvit

feat(core): expose battery SoC to uPy

- uPython application layer can now get state of charge (soc)
information from the power manager

[no changelog]

72/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
AI analysis · Informational 15/100

This commit simply adds a new function that lets the device's Python-based software read the battery percentage from the power manager. It is a straightforward feature addition with no apparent security implications.

Security candidatechore(core): update T3W1 embedded binariesby tychovrahe · 7fd3e1c9 · Sep 10, 2025 · 3 filesMessage 57 · ThinInformational 3Details
Commit message · tychovrahe

chore(core): update T3W1 embedded binaries

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

This commit swaps in newer pre-built binary files for the T3W1 hardware model's bootloader and Bluetooth firmware, plus updates the recorded cryptographic hashes that the build system expects. The change log says '[no changelog]' and the title calls it a routine chore. There is no visible source-code change, no description of a security fix, and no independent evidence that this update addresses a vulnerability.

Lower-priorityfix(core): use `ble__forget_this_success` on success screenby Roman Zeyde · 375ead99 · Sep 10, 2025 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Roman Zeyde

fix(core): use `ble__forget_this_success` on success screen

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

This commit fixes a tiny user-interface wording mistake. After successfully unpairing a Bluetooth device, the Trezor screen was accidentally showing the message intended for the confirmation prompt ('forget this device?') instead of the success message ('device forgotten'). There is no security issue—just the wrong label on the success screen.

Lower-prioritytest(core): add a simple test for `BleUnpair`by Roman Zeyde · ab091ac2 · Sep 10, 2025 · 2 filesMessage 67 · AdequateInformational 15Details
Commit message · Roman Zeyde

test(core): add a simple test for `BleUnpair`

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

This commit only adds a new automated test that checks the Bluetooth 'unpair all' feature on one Trezor model. It does not change any production firmware code, so it cannot introduce a security vulnerability by itself.

Lower-priorityfix(core): don't send `ButtonRequest` after unpairingby Roman Zeyde · 3bf6da87 · Sep 10, 2025 · 1 fileMessage 89 · StrongInformational 19Details
Commit message · Roman Zeyde

fix(core): don't send `ButtonRequest` after unpairing

Otherwise, it will fail since BLE is disconnected.

[no changelog]

89/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Explains rationale or failure mode
AI analysis · Informational 19/100

This is a small bug fix in the Trezor hardware wallet firmware. After a user unpairs a Bluetooth device, the device was trying to send a button-press request over the now-disconnected Bluetooth link, which would fail. The fix stops sending that request during the success screen shown right after unpairing. It is a robustness fix, not a security vulnerability fix.

Lower-priorityfix(core): `ble.unpair()` should be called with an argumentby Roman Zeyde · 3d925a97 · Sep 10, 2025 · 3 filesMessage 62 · AdequateLow 29Details
Commit message · Roman Zeyde

fix(core): `ble.unpair()` should be called with an argument

[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
AI analysis · Low 29/100

This commit fixes a small mismatch in how the Trezor device tells its Bluetooth subsystem to forget a paired device. The underlying Rust function now requires an address argument (or None), and the Python caller was updated to always pass one. The change is a code-cleanup/fix rather than a clear security vulnerability, but the previous default-argument path could have hidden caller mistakes.

Security candidatefix(core/bootloader): account for slow nRF startup - wait before displaying the start buttonby tychovrahe · 2a4ddb4f · Sep 10, 2025 · 5 filesMessage 62 · AdequateLow 26Details
Commit message · tychovrahe

fix(core/bootloader): account for slow nRF startup - wait before displaying the start button

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

This bootloader-only change adds a short wait and a temporary logo screen when a Trezor device has no firmware installed and Bluetooth (BLE) is enabled. The goal is to give the wireless nRF chip time to finish starting up before the user sees the 'Start' setup button. Without this delay, the device could briefly show the start button while the Bluetooth state is still unknown, which might lead to a confusing or inconsistent setup experience. There is no direct evidence in the commit that this fixes an exploitable security vulnerability.

Lower-priorityfix(nordic/ble): adjust advertising interval settings to please apple devicesby tychovrahe · a25f4fc0 · Sep 10, 2025 · 1 fileMessage 62 · AdequateInformational 18Details
Commit message · tychovrahe

fix(nordic/ble): adjust advertising interval settings to please apple devices

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

This commit changes how a Trezor Bluetooth device broadcasts its presence to Apple devices. It makes the device advertise more frequently at first, then slow down after 30 seconds, and adds a lock to prevent simultaneous changes. There is no clear security bug being fixed; it appears to be a compatibility/stability improvement for iPhones and iPads.

Lower-prioritychore(core): remove unneeded `sleep()` from `test_repeated_backup_via_device`by Roman Zeyde · b40ec910 · Sep 9, 2025 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Roman Zeyde

chore(core): remove unneeded `sleep()` from `test_repeated_backup_via_device`

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

This commit removes a short 0.1-second delay from an automated test script. It does not change the actual Trezor firmware or any code that runs on user devices. There is no security issue here.