RE: [PATCH 3/3] Bluetooth: Ignore key unauthenticated for high security

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi, 

>Signed-off-by: Waldemar Rymarkiewicz <waldemar.rymarkiewicz@xxxxxxxxx>
>---
> net/bluetooth/hci_event.c |   21 +++++++++++++++++----
> 1 files changed, 17 insertions(+), 4 deletions(-)
>
>diff --git a/net/bluetooth/hci_event.c 
>b/net/bluetooth/hci_event.c index 5c5e614..337da2b 100644
>--- a/net/bluetooth/hci_event.c
>+++ b/net/bluetooth/hci_event.c
>@@ -2044,11 +2044,24 @@ static inline void 
>hci_link_key_request_evt(struct hci_dev *hdev, struct sk_buff
> 	}
> 
> 	conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
>+	if (conn) {
>+		if (key->type == HCI_LK_UNAUTH_COMBINATION &&
>+				conn->auth_type != 0xff &&
>+				(conn->auth_type & 0x01)) {
>+			BT_DBG("%s ignoring unauthenticated 
>key", hdev->name);
>+			goto not_found;
>+		}
> 
>-	if (key->type == HCI_LK_UNAUTH_COMBINATION && conn &&
>-			conn->auth_type != 0xff && 
>(conn->auth_type & 0x01)) {
>-		BT_DBG("%s ignoring unauthenticated key", hdev->name);
>-		goto not_found;
>+		if (key->type == HCI_LK_COMBINATION &&
>+					conn->sec_level == 
>BT_SECURITY_HIGH &&
>+					conn->pin_length < 16) {


That's wrong. I should check it against stored key->pin_len  and  conn->pending_sec_level. 
We are in the middle of authentication so we don't have conn->sec_level set properly yet. The same apply for conn->pin_length.

if (key->type == HCI_LK_COMBINATION && key->pin_len < 16 &&
	conn->pending_sec_level == BT_SECURITY_HIGH) {
			goto not_found;
		}

/Waldek--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux