<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Tue, 29 Sep 2026 15:08:18 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-64433 — Bluetooth: MGMT: Fix UAF of hci_conn_params in add_device_complete</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-64433</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;Bluetooth: MGMT: Fix UAF of hci_conn_params in add_device_complete&lt;/p&gt;
&lt;p&gt;add_device_complete() runs from the hci_cmd_sync_work kworker, which
holds only hci_req_sync_lock and *not* hci_dev_lock.  It calls
hci_conn_params_lookup() and then dereferences the returned object
(params-&amp;gt;flags) without taking hci_dev_lock:&lt;/p&gt;
&lt;p&gt;params = hci_conn_params_lookup(hdev, &amp;amp;cp-&amp;gt;addr.bdaddr,
					le_addr_type(cp-&amp;gt;addr.type));
	...
	device_flags_changed(NULL, hdev, &amp;amp;cp-&amp;gt;addr.bdaddr,
			     cp-&amp;gt;addr.type, hdev-&amp;gt;conn_flags,
			     params ? params-&amp;gt;flags : 0);&lt;/p&gt;
&lt;p&gt;hci_conn_params_lookup() walks hdev-&amp;gt;le_conn_params and is documented to
require hdev-&amp;gt;lock.  A concurrent MGMT_OP_REMOVE_DEVICE
(remove_device()), which does run under hci_dev_lock, can call
hci_conn_params_free() to list_del() and kfree() the very object the
lookup returned, so the subsequent params-&amp;gt;flags read touches freed
memory [0].&lt;/p&gt;
&lt;p&gt;Hold hci_dev_lock() across the hci_conn_params_lookup() and the read of
params-&amp;gt;flags (and the matching event emission) so the lookup result
cannot be freed by a concurrent remove_device() before it is used,
honouring the locking contract of hci_conn_params_lookup().&lt;/p&gt;
&lt;p&gt;[0]: (trailing page/memory-state dump trimmed)
BUG: KASAN: slab-use-after-free in add_device_complete+0x358/0x3d8 net/bluetooth/mgmt.c:7671
Read of size 1 at addr ffff000017ab26c1 by task kworker/u9:8/388&lt;/p&gt;
&lt;p&gt;CPU: 1 UID: 0 PID: 388 Comm: kworker/u9:8 Not tainted 7.0.11 #20 PREEMPT…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;Bluetooth: MGMT: Fix UAF of hci_conn_params in add_device_complete&lt;/p&gt;
&lt;p&gt;add_device_complete() runs from the hci_cmd_sync_work kworker, which
holds only hci_req_sync_lock and *not* hci_dev_lock.  It calls
hci_conn_params_lookup() and then dereferences the returned object
(params-&amp;gt;flags) without taking hci_dev_lock:&lt;/p&gt;
&lt;p&gt;params = hci_conn_params_lookup(hdev, &amp;amp;cp-&amp;gt;addr.bdaddr,
					le_addr_type(cp-&amp;gt;addr.type));
	...
	device_flags_changed(NULL, hdev, &amp;amp;cp-&amp;gt;addr.bdaddr,
			     cp-&amp;gt;addr.type, hdev-&amp;gt;conn_flags,
			     params ? params-&amp;gt;flags : 0);&lt;/p&gt;
&lt;p&gt;hci_conn_params_lookup() walks hdev-&amp;gt;le_conn_params and is documented to
require hdev-&amp;gt;lock.  A concurrent MGMT_OP_REMOVE_DEVICE
(remove_device()), which does run under hci_dev_lock, can call
hci_conn_params_free() to list_del() and kfree() the very object the
lookup returned, so the subsequent params-&amp;gt;flags read touches freed
memory [0].&lt;/p&gt;
&lt;p&gt;Hold hci_dev_lock() across the hci_conn_params_lookup() and the read of
params-&amp;gt;flags (and the matching event emission) so the lookup result
cannot be freed by a concurrent remove_device() before it is used,
honouring the locking contract of hci_conn_params_lookup().&lt;/p&gt;
&lt;p&gt;[0]: (trailing page/memory-state dump trimmed)
BUG: KASAN: slab-use-after-free in add_device_complete+0x358/0x3d8 net/bluetooth/mgmt.c:7671
Read of size 1 at addr ffff000017ab26c1 by task kworker/u9:8/388&lt;/p&gt;
&lt;p&gt;CPU: 1 UID: 0 PID: 388 Comm: kworker/u9:8 Not tainted 7.0.11 #20 PREEMPT…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-64433</guid>
    </item>
  </channel>
</rss>
