Przeglądaj źródła

Bluedroid: Check only x component of passkey to avoid passkey impersonation attack.

Chinmay Chhajed 4 lat temu
rodzic
commit
b75e034b3c
1 zmienionych plików z 1 dodań i 2 usunięć
  1. 1 2
      components/bt/host/bluedroid/stack/smp/smp_act.c

+ 1 - 2
components/bt/host/bluedroid/stack/smp/smp_act.c

@@ -764,8 +764,7 @@ void smp_process_pairing_public_key(tSMP_CB *p_cb, tSMP_INT_DATA *p_data)
     /* Check if the peer device's and own public key are not same. If they are same then
      * return pairing fail. This check is needed to avoid 'Impersonation in Passkey entry
      * protocol' vulnerability (CVE-2020-26558).*/
-    if ((memcmp(p_cb->loc_publ_key.x, p_cb->peer_publ_key.x, sizeof(BT_OCTET32)) == 0) &&
-        (memcmp(p_cb->loc_publ_key.y, p_cb->peer_publ_key.y, sizeof(BT_OCTET32)) == 0)) {
+    if ((memcmp(p_cb->loc_publ_key.x, p_cb->peer_publ_key.x, sizeof(BT_OCTET32)) == 0)) {
         p_cb->status = SMP_PAIR_AUTH_FAIL;
         p_cb->failure = SMP_PAIR_AUTH_FAIL;
         reason = SMP_PAIR_AUTH_FAIL;