<?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>Sun, 04 Oct 2026 20:59:07 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-80760 — Bluetooth: MGMT: reject HCI_CMD_SYNC params_len above 255</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-80760</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: reject HCI_CMD_SYNC params_len above 255&lt;/p&gt;
&lt;p&gt;mgmt_hci_cmd_sync() checks that the message length agrees with params_len
but puts no upper bound on it. params_len is __le16 while the parameter
length in the HCI command header is a u8:&lt;/p&gt;
&lt;p&gt;struct hci_command_hdr {
		__le16	opcode;
		__u8	plen;
	} __packed;&lt;/p&gt;
&lt;p&gt;hci_cmd_sync_alloc() assigns one to the other:&lt;/p&gt;
&lt;p&gt;hdr-&amp;gt;plen = plen;&lt;/p&gt;
&lt;p&gt;if (plen)
		skb_put_data(skb, param, plen);&lt;/p&gt;
&lt;p&gt;so a params_len of 256 leaves plen at 0 while all 256 bytes are still
appended. The frame handed to the driver then declares no parameters and
carries 256 of them. On a length framed transport such as H:4 the
controller takes the trailing bytes as the start of the next packet.&lt;/p&gt;
&lt;p&gt;The mgmt socket MTU is HCI_MAX_FRAME_SIZE, so params_len can reach about
1KB this way. Commit 03f1700b9b4d (&amp;#34;Bluetooth: MGMT: reject malformed
HCI_CMD_SYNC commands&amp;#34;) only made params_len agree with the message
length, a value that fits the message but not the header field is still
accepted.&lt;/p&gt;
&lt;p&gt;Reject params_len that does not fit the header field.&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: reject HCI_CMD_SYNC params_len above 255&lt;/p&gt;
&lt;p&gt;mgmt_hci_cmd_sync() checks that the message length agrees with params_len
but puts no upper bound on it. params_len is __le16 while the parameter
length in the HCI command header is a u8:&lt;/p&gt;
&lt;p&gt;struct hci_command_hdr {
		__le16	opcode;
		__u8	plen;
	} __packed;&lt;/p&gt;
&lt;p&gt;hci_cmd_sync_alloc() assigns one to the other:&lt;/p&gt;
&lt;p&gt;hdr-&amp;gt;plen = plen;&lt;/p&gt;
&lt;p&gt;if (plen)
		skb_put_data(skb, param, plen);&lt;/p&gt;
&lt;p&gt;so a params_len of 256 leaves plen at 0 while all 256 bytes are still
appended. The frame handed to the driver then declares no parameters and
carries 256 of them. On a length framed transport such as H:4 the
controller takes the trailing bytes as the start of the next packet.&lt;/p&gt;
&lt;p&gt;The mgmt socket MTU is HCI_MAX_FRAME_SIZE, so params_len can reach about
1KB this way. Commit 03f1700b9b4d (&amp;#34;Bluetooth: MGMT: reject malformed
HCI_CMD_SYNC commands&amp;#34;) only made params_len agree with the message
length, a value that fits the message but not the header field is still
accepted.&lt;/p&gt;
&lt;p&gt;Reject params_len that does not fit the header field.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-80760</guid>
    </item>
  </channel>
</rss>
