<?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 22:47:36 +0000</lastBuildDate>
    <item>
      <title>CVE-2022-49910 — Bluetooth: L2CAP: Fix use-after-free caused by l2cap_reassemble_sdu</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2022-49910</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: L2CAP: Fix use-after-free caused by l2cap_reassemble_sdu&lt;/p&gt;
&lt;p&gt;Fix the race condition between the following two flows that run in
parallel:&lt;/p&gt;
&lt;p&gt;1. l2cap_reassemble_sdu -&amp;gt; chan-&amp;gt;ops-&amp;gt;recv (l2cap_sock_recv_cb) -&amp;gt;
   __sock_queue_rcv_skb.&lt;/p&gt;
&lt;p&gt;2. bt_sock_recvmsg -&amp;gt; skb_recv_datagram, skb_free_datagram.&lt;/p&gt;
&lt;p&gt;An SKB can be queued by the first flow and immediately dequeued and
freed by the second flow, therefore the callers of l2cap_reassemble_sdu
can&amp;#39;t use the SKB after that function returns. However, some places
continue accessing struct l2cap_ctrl that resides in the SKB&amp;#39;s CB for a
short time after l2cap_reassemble_sdu returns, leading to a
use-after-free condition (the stack trace is below, line numbers for
kernel 5.19.8).&lt;/p&gt;
&lt;p&gt;Fix it by keeping a local copy of struct l2cap_ctrl.&lt;/p&gt;
&lt;p&gt;BUG: KASAN: use-after-free in l2cap_rx_state_recv (net/bluetooth/l2cap_core.c:6906) bluetooth
Read of size 1 at addr ffff88812025f2f0 by task kworker/u17:3/43169&lt;/p&gt;
&lt;p&gt;Workqueue: hci0 hci_rx_work [bluetooth]
Call Trace:
 &amp;lt;TASK&amp;gt;
 dump_stack_lvl (lib/dump_stack.c:107 (discriminator 4))
 print_report.cold (mm/kasan/report.c:314 mm/kasan/report.c:429)
 ? l2cap_rx_state_recv (net/bluetooth/l2cap_core.c:6906) bluetooth
 kasan_report (mm/kasan/report.c:162 mm/kasan/report.c:493)
 ? l2cap_rx_state_recv (net/bluetooth/l2cap_core.c:6906) bluetooth
 l2cap_rx_state_recv (net/bluetooth/l2cap_core.c:6906) bluetooth
 l2cap_rx (net/bluetooth/l2cap_core.c:7236 ne…&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: L2CAP: Fix use-after-free caused by l2cap_reassemble_sdu&lt;/p&gt;
&lt;p&gt;Fix the race condition between the following two flows that run in
parallel:&lt;/p&gt;
&lt;p&gt;1. l2cap_reassemble_sdu -&amp;gt; chan-&amp;gt;ops-&amp;gt;recv (l2cap_sock_recv_cb) -&amp;gt;
   __sock_queue_rcv_skb.&lt;/p&gt;
&lt;p&gt;2. bt_sock_recvmsg -&amp;gt; skb_recv_datagram, skb_free_datagram.&lt;/p&gt;
&lt;p&gt;An SKB can be queued by the first flow and immediately dequeued and
freed by the second flow, therefore the callers of l2cap_reassemble_sdu
can&amp;#39;t use the SKB after that function returns. However, some places
continue accessing struct l2cap_ctrl that resides in the SKB&amp;#39;s CB for a
short time after l2cap_reassemble_sdu returns, leading to a
use-after-free condition (the stack trace is below, line numbers for
kernel 5.19.8).&lt;/p&gt;
&lt;p&gt;Fix it by keeping a local copy of struct l2cap_ctrl.&lt;/p&gt;
&lt;p&gt;BUG: KASAN: use-after-free in l2cap_rx_state_recv (net/bluetooth/l2cap_core.c:6906) bluetooth
Read of size 1 at addr ffff88812025f2f0 by task kworker/u17:3/43169&lt;/p&gt;
&lt;p&gt;Workqueue: hci0 hci_rx_work [bluetooth]
Call Trace:
 &amp;lt;TASK&amp;gt;
 dump_stack_lvl (lib/dump_stack.c:107 (discriminator 4))
 print_report.cold (mm/kasan/report.c:314 mm/kasan/report.c:429)
 ? l2cap_rx_state_recv (net/bluetooth/l2cap_core.c:6906) bluetooth
 kasan_report (mm/kasan/report.c:162 mm/kasan/report.c:493)
 ? l2cap_rx_state_recv (net/bluetooth/l2cap_core.c:6906) bluetooth
 l2cap_rx_state_recv (net/bluetooth/l2cap_core.c:6906) bluetooth
 l2cap_rx (net/bluetooth/l2cap_core.c:7236 ne…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2022-49910</guid>
    </item>
  </channel>
</rss>
