<?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://db.gcve.eu</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>Sat, 17 Oct 2026 13:33:32 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-19939</title>
      <link>https://db.gcve.eu/vuln/fkie_cve-2026-19939</link>
      <description>&lt;p&gt;The AVDTP signalling layer arms a 6-second command timeout (AVDTP_TIMEOUT) in avdtp_send_cmd() whenever the local device issues an AVDTP request. Every response handler in subsys/bluetooth/host/classic/avdtp.c cancels session-&amp;gt;timeout_work before clearing the pending request, but bt_avdtp_l2cap_disconnected() only cleared session-&amp;gt;req and left the delayable work armed. The struct bt_avdtp session is the first member of struct bt_a2dp, whose instances live in a static per-connection array, and a2dp_get_connection() in subsys/bluetooth/host/classic/a2dp.c wipes a slot with memset() as soon as session-&amp;gt;br_chan.chan.conn is NULL — which the L2CAP layer arranges immediately after the disconnect callback returns.&lt;/p&gt;
&lt;p&gt;A remote Bluetooth BR/EDR peer triggers the condition by opening the AVDTP signalling channel, letting the local application issue an AVDTP procedure (the standard A2DP flow issues bt_a2dp_discover() from the connected callback), then tearing the signalling channel down without responding and re-opening it within the remaining timeout window. The reconnect reaches a2dp_accept() → a2dp_get_connection(), which zeroes the whole struct bt_a2dp while the work item&amp;#39;s struct _timeout is still linked into the kernel&amp;#39;s global timeout list. Both the disconnect and the reconnect instants are chosen by the attacker, so no race has to be won; an encrypted BR/EDR link is required, and CONFIG_BT_A2DP (experimental) must be enabled.&lt;/p&gt;
&lt;p&gt;With the default CONFIG_TIMEOUT_BACKEND_DLIST backend…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;The AVDTP signalling layer arms a 6-second command timeout (AVDTP_TIMEOUT) in avdtp_send_cmd() whenever the local device issues an AVDTP request. Every response handler in subsys/bluetooth/host/classic/avdtp.c cancels session-&amp;gt;timeout_work before clearing the pending request, but bt_avdtp_l2cap_disconnected() only cleared session-&amp;gt;req and left the delayable work armed. The struct bt_avdtp session is the first member of struct bt_a2dp, whose instances live in a static per-connection array, and a2dp_get_connection() in subsys/bluetooth/host/classic/a2dp.c wipes a slot with memset() as soon as session-&amp;gt;br_chan.chan.conn is NULL — which the L2CAP layer arranges immediately after the disconnect callback returns.&lt;/p&gt;
&lt;p&gt;A remote Bluetooth BR/EDR peer triggers the condition by opening the AVDTP signalling channel, letting the local application issue an AVDTP procedure (the standard A2DP flow issues bt_a2dp_discover() from the connected callback), then tearing the signalling channel down without responding and re-opening it within the remaining timeout window. The reconnect reaches a2dp_accept() → a2dp_get_connection(), which zeroes the whole struct bt_a2dp while the work item&amp;#39;s struct _timeout is still linked into the kernel&amp;#39;s global timeout list. Both the disconnect and the reconnect instants are chosen by the attacker, so no race has to be won; an encrypted BR/EDR link is required, and CONFIG_BT_A2DP (experimental) must be enabled.&lt;/p&gt;
&lt;p&gt;With the default CONFIG_TIMEOUT_BACKEND_DLIST backend…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/fkie_cve-2026-19939</guid>
    </item>
  </channel>
</rss>
