Bug 2177759 (CVE-2023-28464) - CVE-2023-28464 Kernel: double free in hci_conn_cleanup of the bluetooth subsystem
Summary: CVE-2023-28464 Kernel: double free in hci_conn_cleanup of the bluetooth subsy...
Keywords:
Status: NEW
Alias: CVE-2023-28464
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Nobody
QA Contact:
URL:
Whiteboard:
Depends On: 2177777 2177778 2177779 2177780 2183548
Blocks: 2176489
TreeView+ depends on / blocked
 
Reported: 2023-03-13 14:54 UTC by Rohit Keshri
Modified: 2024-05-02 22:49 UTC (History)
46 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
A double-free vulnerability was found in the hci_conn_cleanup in net/bluetooth/hci_conn.c in the Linux Kernel. This issue may cause a denial of service or privilege escalation.
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2024:2634 0 None None None 2024-05-01 01:21:47 UTC
Red Hat Product Errata RHBA-2024:2650 0 None None None 2024-05-02 00:14:36 UTC
Red Hat Product Errata RHBA-2024:2686 0 None None None 2024-05-02 22:49:43 UTC
Red Hat Product Errata RHSA-2024:2394 0 None None None 2024-04-30 10:09:42 UTC

Description Rohit Keshri 2023-03-13 14:54:44 UTC
A double free vulnerability was found in the hci_conn_cleanup function of net/bluetooth/hci_conn.c, which may cause DOS or privilege escalation.

Version: Linux kernel 6.2 (this problem also exists in 6.3-rc1)


At the end of the hci_conn_del_sysfs(conn) function in the hci_conn_cleanup function, hci_dev_put(hdev) will be called. The hci_dev_put function will eventually call kfree to release the space used by name:

```
hci_dev_put
put_device
kobject_put
kref_put
kobject_release
kobject_cleanup
kfree_const
kfree

```



After the hci_conn_del_sysfs function ends, the hci_dev_put function is called again in the hci_conn_cleanup function, and their parameters hdev are the same, so double free will be caused when the name is released.

In addition, at the end of hci_conn_cleanup, the hci_conn_put function is called again, which will call the put_device function to release conn->dev. Obviously conn->dev has been released, so there will also be a double free problem here.



Call Trace from syzbot, https://syzkaller.appspot.com/bug?id=1bb51491ca5df96a5f724899d1dbb87afda61419:

Comment 3 Pedro Sampaio 2023-03-31 15:11:42 UTC
Created kernel tracking bugs for this issue:

Affects: fedora-all [bug 2183548]

Comment 9 Justin M. Forbes 2023-05-09 17:41:12 UTC
This was fixed for Fedora with the 6.2.12 stable kernel update.

Comment 11 errata-xmlrpc 2024-04-30 10:09:39 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 9

Via RHSA-2024:2394 https://access.redhat.com/errata/RHSA-2024:2394


Note You need to log in before you can comment on or make changes to this bug.