Bluetooth: Always request for user confirmation for Just Works (LE SC)
authorSonny Sasaka <sonnysasaka@chromium.org>
Mon, 6 Apr 2020 18:04:02 +0000 (11:04 -0700)
committerMarcel Holtmann <marcel@holtmann.org>
Wed, 8 Apr 2020 20:18:32 +0000 (22:18 +0200)
To improve security, always give the user-space daemon a chance to
accept or reject a Just Works pairing (LE). The daemon may decide to
auto-accept based on the user's intent.

This patch is similar to the previous patch but applies for LE Secure
Connections (SC).

Signed-off-by: Sonny Sasaka <sonnysasaka@chromium.org>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
net/bluetooth/smp.c

index daf198fb2b3187baaa6ec9073863822d64c76de8..df22cbf94693b7308db97a1f9e0adb30b8dd066a 100644 (file)
@@ -2201,7 +2201,7 @@ mackey_and_ltk:
        if (err)
                return SMP_UNSPECIFIED;
 
-       if (smp->method == JUST_WORKS || smp->method == REQ_OOB) {
+       if (smp->method == REQ_OOB) {
                if (hcon->out) {
                        sc_dhkey_check(smp);
                        SMP_ALLOW_CMD(smp, SMP_CMD_DHKEY_CHECK);
@@ -2216,6 +2216,9 @@ mackey_and_ltk:
        confirm_hint = 0;
 
 confirm:
+       if (smp->method == JUST_WORKS)
+               confirm_hint = 1;
+
        err = mgmt_user_confirm_request(hcon->hdev, &hcon->dst, hcon->type,
                                        hcon->dst_type, passkey, confirm_hint);
        if (err)