fix(nordic/ble): relax connection interval request so that its not ignored on Mac
What changed, and why it matters
This commit widens the preferred Bluetooth Low Energy connection interval range on Trezor's Nordic BLE firmware so that Apple/macOS devices will accept the request instead of ignoring it. It is a compatibility/bug fix rather than a security patch. There is no direct evidence in the commit or supplied references that this change addresses a security vulnerability.
No immediate security action required. Treat as a normal compatibility fix. If reviewing for security, verify that the wider BLE connection interval does not materially affect latency-sensitive anti-replay or pairing timeout behavior in downstream protocols, though the commit itself gives no indication of such an issue.
Security signals we found
No security-relevant keywords in commit title or message
Change is a configuration relaxation for Bluetooth LE connection parameters
No references to CVEs, vulnerabilities, researchers, or security advisories in commit
Diff is small and limited to BLE timing/interval values
Evidence from the diff
The change updates two locations in the Nordic BLE firmware: prj.conf (CONFIG_BT_PERIPHERAL_PREF_MAX_INT from 6 to 12) and connection.c (BT_LE_CONN_PARAM max interval from 6 to 12 in connected() and connection_resume()). The commit message states this is to prevent the connection interval request from being ignored on Mac. The narrower interval (6-6) was likely rejected by macOS/iOS, which generally requires a non-zero range and may enforce minimum/maximum interval constraints. Widening the range is a normal interoperability fix and does not, by itself, introduce a known vulnerability.
Changed components
nordic/trezor/trezor-ble/prj.confnordic/trezor/trezor-ble/src/ble/connection.cInspect captured patch +3 / −3
diff --git a/nordic/trezor/trezor-ble/prj.conf b/nordic/trezor/trezor-ble/prj.conf
index 1c5756226..a14ecf687 100644
--- a/nordic/trezor/trezor-ble/prj.conf
+++ b/nordic/trezor/trezor-ble/prj.conf
@@ -55,7 +55,7 @@ CONFIG_BT_LL_SW_SPLIT=y
CONFIG_BT_CTLR_TX_PWR_PLUS_4=y
CONFIG_BT_GAP_PERIPHERAL_PREF_PARAMS=y
CONFIG_BT_PERIPHERAL_PREF_MIN_INT=6
-CONFIG_BT_PERIPHERAL_PREF_MAX_INT=6
+CONFIG_BT_PERIPHERAL_PREF_MAX_INT=12
CONFIG_BT_PERIPHERAL_PREF_TIMEOUT=400
CONFIG_BT_CTLR_PHY_2M=y
CONFIG_BT_USER_PHY_UPDATE=y
diff --git a/nordic/trezor/trezor-ble/src/ble/connection.c b/nordic/trezor/trezor-ble/src/ble/connection.c
index 1cdcbdde2..6b13c534d 100644
--- a/nordic/trezor/trezor-ble/src/ble/connection.c
+++ b/nordic/trezor/trezor-ble/src/ble/connection.c
@@ -66,7 +66,7 @@ void connected(struct bt_conn *conn, uint8_t err) {
show_params(conn);
- const struct bt_le_conn_param *param = BT_LE_CONN_PARAM(6, 6, 0, 400);
+ const struct bt_le_conn_param *param = BT_LE_CONN_PARAM(6, 12, 0, 400);
bt_conn_le_param_update(conn, param);
// Prefer 2M both directions; 0 options = no specific constraints
@@ -170,7 +170,7 @@ void connection_resume(void) {
struct bt_conn *conn = connection_get_current();
if (conn != NULL) {
- const struct bt_le_conn_param *param = BT_LE_CONN_PARAM(6, 6, 0, 400);
+ const struct bt_le_conn_param *param = BT_LE_CONN_PARAM(6, 12, 0, 400);
bt_conn_le_param_update(conn, param);
}
}
Why this scored 18/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.