CVE-2026-10651: bounds in zephyrproject zephyr
bt_sdp_parse_attribute() in subsys/bluetooth/host/classic/sdp.c validated only that the SDP record buffer held the type-marker byte plus the 2-byte attribute ID (a check of buf->len < 3) but then read a fourth byte, the data-element descriptor (type), via net_buf_simple_pull_u8(). Because net_buf_simple_pull_u8() dereferences buf->data[0] before its only bounds guard (an __ASSERT_NO_MSG that compiles out when CONFIG_ASSERT is disabled, the production default), a record of exactly three bytes (0x09 followed by a 2-byte attribute ID) causes a one-byte read past the end of the logical buffer. The parser is reachable from inbound, remote-controlled data: a Bluetooth BR/EDR peer acting as an SDP server returns discovery-response records that are stored verbatim in the client receive buffer and parsed via the public bt_sdp_get_attr()/bt_sdp_has_attr()/bt_sdp_record_parse() helpers. The over-read is bounded to a single byte that is used only as an internal length selector and is never leaked to the attacker; subsequent length checks then reject the malformed record. Realistic impact is therefore limited to an edge-case denial of service (a fault only if the record ends exactly at a mapped-memory boundary, or a deterministic assert panic when CONFIG_ASSERT=y). Affects Zephyr v4.3.0 and v4.4.0; fixed by adding sizeof(type) to the length check.
AI Analysis
Technical Summary
The function bt_sdp_parse_attribute() in Zephyr's Bluetooth SDP implementation performs an insufficient length check on SDP record buffers, verifying only that the buffer length is at least 3 bytes before reading a fourth byte (the data-element descriptor) without proper bounds checking. This leads to a one-byte out-of-bounds read when the buffer is exactly three bytes long. The out-of-bounds byte is used internally as a length selector and is not exposed to attackers. Subsequent length checks reject malformed records, limiting impact to an edge-case denial of service or assert panic when assertions are enabled. The vulnerability is reachable from remote Bluetooth BR/EDR peers acting as SDP servers. It affects Zephyr versions 4.3.0 and 4.4.0 and was fixed by adding the size of the type byte to the length check.
Potential Impact
The vulnerability can cause a one-byte out-of-bounds read in the Bluetooth SDP parser, which may lead to a denial of service via a fault or deterministic assert panic if assertions are enabled. There is no confidentiality or integrity impact as the out-of-bounds byte is not leaked or used maliciously beyond internal length selection. The attack vector requires a remote Bluetooth BR/EDR peer sending crafted SDP records. No known exploits are reported in the wild.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. The issue was fixed by adding the missing length check to include the size of the data-element descriptor byte. Until a patch is applied, consider disabling Bluetooth SDP client functionality or enabling CONFIG_ASSERT to detect the fault during testing. No other specific mitigations are indicated.
CVE-2026-10651: bounds in zephyrproject zephyr
Description
bt_sdp_parse_attribute() in subsys/bluetooth/host/classic/sdp.c validated only that the SDP record buffer held the type-marker byte plus the 2-byte attribute ID (a check of buf->len < 3) but then read a fourth byte, the data-element descriptor (type), via net_buf_simple_pull_u8(). Because net_buf_simple_pull_u8() dereferences buf->data[0] before its only bounds guard (an __ASSERT_NO_MSG that compiles out when CONFIG_ASSERT is disabled, the production default), a record of exactly three bytes (0x09 followed by a 2-byte attribute ID) causes a one-byte read past the end of the logical buffer. The parser is reachable from inbound, remote-controlled data: a Bluetooth BR/EDR peer acting as an SDP server returns discovery-response records that are stored verbatim in the client receive buffer and parsed via the public bt_sdp_get_attr()/bt_sdp_has_attr()/bt_sdp_record_parse() helpers. The over-read is bounded to a single byte that is used only as an internal length selector and is never leaked to the attacker; subsequent length checks then reject the malformed record. Realistic impact is therefore limited to an edge-case denial of service (a fault only if the record ends exactly at a mapped-memory boundary, or a deterministic assert panic when CONFIG_ASSERT=y). Affects Zephyr v4.3.0 and v4.4.0; fixed by adding sizeof(type) to the length check.
CVSS v3.1
Score 7.1high
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The function bt_sdp_parse_attribute() in Zephyr's Bluetooth SDP implementation performs an insufficient length check on SDP record buffers, verifying only that the buffer length is at least 3 bytes before reading a fourth byte (the data-element descriptor) without proper bounds checking. This leads to a one-byte out-of-bounds read when the buffer is exactly three bytes long. The out-of-bounds byte is used internally as a length selector and is not exposed to attackers. Subsequent length checks reject malformed records, limiting impact to an edge-case denial of service or assert panic when assertions are enabled. The vulnerability is reachable from remote Bluetooth BR/EDR peers acting as SDP servers. It affects Zephyr versions 4.3.0 and 4.4.0 and was fixed by adding the size of the type byte to the length check.
Potential Impact
The vulnerability can cause a one-byte out-of-bounds read in the Bluetooth SDP parser, which may lead to a denial of service via a fault or deterministic assert panic if assertions are enabled. There is no confidentiality or integrity impact as the out-of-bounds byte is not leaked or used maliciously beyond internal length selection. The attack vector requires a remote Bluetooth BR/EDR peer sending crafted SDP records. No known exploits are reported in the wild.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. The issue was fixed by adding the missing length check to include the size of the data-element descriptor byte. Until a patch is applied, consider disabling Bluetooth SDP client functionality or enabling CONFIG_ASSERT to detect the fault during testing. No other specific mitigations are indicated.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- zephyr
- Date Reserved
- 2026-06-02T15:24:24.388Z
- Cvss Version
- 3.1
- State
- PUBLISHED
- Remediation Level
- null
Threat ID: 6a39d22ceed863c81e9d9253
Added to database: 06/23/2026, 00:24:12 UTC
Last enriched: 07/22/2026, 22:51:39 UTC
Last updated: 08/06/2026, 12:41:09 UTC
Views: 84
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.