GHSA-P6R7-4GCJ-HHQQ

Vulnerability from github – Published: 2026-09-04 18:31 – Updated: 2026-09-04 18:31
VLAI
Details

In the Linux kernel, the following vulnerability has been resolved:

Bluetooth: MGMT: reject HCI_CMD_SYNC params_len above 255

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:

struct hci_command_hdr {
    __le16  opcode;
    __u8    plen;
} __packed;

hci_cmd_sync_alloc() assigns one to the other:

hdr->plen = plen;

if (plen)
    skb_put_data(skb, param, plen);

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.

The mgmt socket MTU is HCI_MAX_FRAME_SIZE, so params_len can reach about 1KB this way. Commit 03f1700b9b4d ("Bluetooth: MGMT: reject malformed HCI_CMD_SYNC commands") only made params_len agree with the message length, a value that fits the message but not the header field is still accepted.

Reject params_len that does not fit the header field.

Show details on source website

{
  "affected": [],
  "aliases": [
    "CVE-2026-80760"
  ],
  "database_specific": {
    "cwe_ids": [],
    "github_reviewed": false,
    "github_reviewed_at": null,
    "nvd_published_at": "2026-09-04T16:18:01Z",
    "severity": null
  },
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: MGMT: reject HCI_CMD_SYNC params_len above 255\n\nmgmt_hci_cmd_sync() checks that the message length agrees with params_len\nbut puts no upper bound on it. params_len is __le16 while the parameter\nlength in the HCI command header is a u8:\n\n\tstruct hci_command_hdr {\n\t\t__le16\topcode;\n\t\t__u8\tplen;\n\t} __packed;\n\nhci_cmd_sync_alloc() assigns one to the other:\n\n\thdr-\u003eplen = plen;\n\n\tif (plen)\n\t\tskb_put_data(skb, param, plen);\n\nso a params_len of 256 leaves plen at 0 while all 256 bytes are still\nappended. The frame handed to the driver then declares no parameters and\ncarries 256 of them. On a length framed transport such as H:4 the\ncontroller takes the trailing bytes as the start of the next packet.\n\nThe mgmt socket MTU is HCI_MAX_FRAME_SIZE, so params_len can reach about\n1KB this way. Commit 03f1700b9b4d (\"Bluetooth: MGMT: reject malformed\nHCI_CMD_SYNC commands\") only made params_len agree with the message\nlength, a value that fits the message but not the header field is still\naccepted.\n\nReject params_len that does not fit the header field.",
  "id": "GHSA-p6r7-4gcj-hhqq",
  "modified": "2026-09-04T18:31:24Z",
  "published": "2026-09-04T18:31:24Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-80760"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/0bd0195ce25737cbdd0eabc54319ee0ddf3a0ad2"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/5d95286b6d6e8f1d304da7522bfa6860fc017e48"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/6e1c44878aa3ee7336efeaf01414b030b0a5c273"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/b7d9edcf9fe6e9ec3a2e80ef9e8d44ef9b4f2894"
    }
  ],
  "schema_version": "1.4.0",
  "severity": []
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…