<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://db.gcve.eu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-24T21:20:08.981730+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@gcve.eu</email>
  </author>
  <link href="https://db.gcve.eu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://db.gcve.eu/vuln/cve-2026-99011</id>
    <title>CVE-2026-99011 — Bluetooth: SCO: serialise sco_conn lifetime against sco_recv_scodata()</title>
    <updated>2026-10-24T21:20:08.982837+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Linux</p>
<p>In the Linux kernel, the following vulnerability has been resolved:</p>
<p>Bluetooth: SCO: serialise sco_conn lifetime against sco_recv_scodata()</p>
<p>sco_recv_scodata() upgrades the weak hcon-&gt;sco_data back-pointer to a
strong reference under hdev-&gt;lock:</p>
<p>hci_dev_lock(hdev);
    hcon = hci_conn_hash_lookup_handle(hdev, handle);
    ...
    conn = sco_conn_hold_unless_zero(hcon-&gt;sco_data);
    hci_dev_unlock(hdev);</p>
<p>but the pointer is cleared from the other side without that lock. When
the last sco_conn reference is dropped, sco_conn_free() ran</p>
<p>conn-&gt;hcon-&gt;sco_data = NULL;</p>
<p>with no hdev-&gt;lock held, so the RX path could read hcon-&gt;sco_data and
call kref_get_unless_zero() on an sco_conn that was concurrently freed:</p>
<p>BUG: KASAN: slab-use-after-free in sco_conn_hold_unless_zero+0xbe/0x160
    Write of size 4 by task kworker/u17:0
    Workqueue: hci0 hci_rx_work
    Call Trace:
     sco_conn_hold_unless_zero+0xbe/0x160
     sco_recv_scodata+0x13f/0x490
     hci_rx_work+0x3af/0x730</p>
<p>kref_get_unless_zero() only guards against a zero refcount, not against
the backing memory already being freed.</p>
<p>Give hcon-&gt;sco_data an actual reference on the sco_conn it points to, so
the object cannot be freed while the pointer is still installed, and only
clear and drop it from sco_conn_del(), which runs under hdev-&gt;lock (its
callers, sco_connect_cfm() and sco_disconn_cfm(), hold it). The reader in
sco_recv_scodata() also takes hdev-&gt;lock, so the store and the read are
now serialised: the RX pat…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/cve-2026-99011"/>
  </entry>
</feed>
