fix(core): don't send `ButtonRequest` after unpairing
What changed, and why it matters
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.
No immediate security action required. Treat as a normal firmware robustness improvement. If auditing, verify that no other post-disconnection flows emit ButtonRequest on a stale transport.
Security signals we found
Bluetooth disconnection state mishandled
UI flow emits message on disconnected transport
No changelog entry provided
Evidence from the diff
In core/src/apps/management/ble/unpair.py, the calls to show_success() after BLE unpairing previously passed a br_name string (e.g., ‘device_unpair_all_success’), which triggers a ButtonRequest message to the host. Because BLE has just been disconnected, sending that ButtonRequest would fail. The patch passes br_name=None so no ButtonRequest is emitted during the success screen.
Changed components
core/src/apps/management/ble/unpair.pyBLE unpairing success screen flowInspect captured patch +2 / −2
diff --git a/core/src/apps/management/ble/unpair.py b/core/src/apps/management/ble/unpair.py
index 4e6154b22..e1fc71418 100644
--- a/core/src/apps/management/ble/unpair.py
+++ b/core/src/apps/management/ble/unpair.py
@@ -42,13 +42,13 @@ async def unpair(msg: BleUnpair) -> None:
if msg.all:
await show_success(
- br_name="device_unpair_all_success",
+ br_name=None,
content=TR.ble__forget_all_success,
button=TR.buttons__close,
)
else:
await show_success(
- br_name="device_unpair_success",
+ br_name=None,
content=TR.ble__forget_this_device,
button=TR.buttons__close,
)
Why this scored 19/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.