Nimble/host: Compare only x component of public key before pairing

Update fix of MITM vulnerability during public key exchange in secure connection
This commit is contained in:
Rahul Tank
2021-09-14 09:28:59 +05:30
parent e0af67b78d
commit d79ba4d776
+8
View File
@@ -612,6 +612,14 @@ ble_sm_sc_public_key_rx(uint16_t conn_handle, struct os_mbuf **om,
cmd = (struct ble_sm_public_key *)(*om)->om_data;
/* Check if the X component of peer public key is same as X component of our generated public key.
* Return fail if they match. */
if (memcmp(cmd, ble_sm_sc_pub_key, 32) == 0) {
res->enc_cb = 1;
res->sm_err = BLE_SM_ERR_AUTHREQ;
return;
}
ble_hs_lock();
proc = ble_sm_proc_find(conn_handle, BLE_SM_PROC_STATE_PUBLIC_KEY, -1,
NULL);