mirror of
https://github.com/espressif/esp-nimble.git
synced 2026-10-02 13:27:21 +00:00
nimble/host: Fix MITM vulnerability during public key exchange in secure connection
This commit is contained in:
@@ -569,6 +569,13 @@ ble_sm_sc_public_key_rx(uint16_t conn_handle, struct os_mbuf **om,
|
|||||||
|
|
||||||
cmd = (struct ble_sm_public_key *)(*om)->om_data;
|
cmd = (struct ble_sm_public_key *)(*om)->om_data;
|
||||||
BLE_SM_LOG_CMD(0, "public key", conn_handle, ble_sm_public_key_log, cmd);
|
BLE_SM_LOG_CMD(0, "public key", conn_handle, ble_sm_public_key_log, cmd);
|
||||||
|
/* Check if the peer public key is same as our generated public key.
|
||||||
|
* Return fail if the public keys match. */
|
||||||
|
if (memcmp(cmd, ble_sm_sc_pub_key, 64) == 0) {
|
||||||
|
res->enc_cb = 1;
|
||||||
|
res->sm_err = BLE_SM_ERR_AUTHREQ;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
ble_hs_lock();
|
ble_hs_lock();
|
||||||
proc = ble_sm_proc_find(conn_handle, BLE_SM_PROC_STATE_PUBLIC_KEY, -1,
|
proc = ble_sm_proc_find(conn_handle, BLE_SM_PROC_STATE_PUBLIC_KEY, -1,
|
||||||
|
|||||||
Reference in New Issue
Block a user