---
id: CVE-2026-10651
title: >-
  A malformed Bluetooth Classic SDP attribute can trigger a reachable assertion
  in Zephyr's SDP parser
summary: >-
  A malformed Bluetooth Classic SDP attribute can trigger a reachable assertion
  in Zephyr's SDP parser. In subsys/bluetooth/host/classic/sdp.c,
  bt_sdp_parse_attribute() accepts an input buffer once it contains the 1-byte
  attribute type and…
severity: high
cvss: 7.1
cvssVector: 'CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:H'
cwe:
  - CWE-20
  - CWE-617
vendor: zephyrproject
product: zephyr
affected:
  - zephyr <= 4.4.1
published: '2026-06-23'
updated: '2026-07-06'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-10651'
references:
  - url: >-
      https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-p93g-3r68-cj53
    label: vulnerabilities@zephyrproject.org
tags:
  - nvd
epss: 0.00298
epssPercentile: 0.20108
ingestedAt: '2026-07-06T19:45:46.934Z'
---

## Overview

A malformed Bluetooth Classic SDP attribute can trigger a reachable assertion in Zephyr's SDP parser. In subsys/bluetooth/host/classic/sdp.c, bt_sdp_parse_attribute() accepts an input buffer once it contains the 1-byte attribute type and 2-byte attribute id, but then unconditionally pulls an additional byte for the value type without verifying that the byte is present. A truncated 3-byte attribute (for example 09 00 09) therefore reaches net_buf_simple_pull() with insufficient remaining length, triggering the __ASSERT_NO_MSG(buf->len >= len) check and a kernel panic in assert-enabled builds (denial of service). In builds where assertions are disabled, parsing may continue past the end of the available buffer, leading to an out-of-bounds read and undefined behavior.

## Affected

- `zephyr <= 4.4.1`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
