Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-18748— Out-of-bounds read in Bluetooth Classic A2DP codec information element handling

Quick assessment

Affected
zephyrproject zephyr
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

经典蓝牙 A2DP 主机将编解码器信息元素(IE)存储在 结构中,该结构包含一个单字节的长度字段 和一个固定长度为 8 字节的 数组。当 AVDTP 对等端发送长度超过 8 字节的编解码器 IE 时, (位于 )仅复制了前 8 个字节,却将攻击者指定的完整长度赋值给 ,随后将该不一致的结构通过 持久化到应用程序的 中。 和 也存在相同的“截断复制但保留原长度”的模式。 后续所有使用者均信任 字段。特别是针对传入的 AVDTP GET_CONFIGURATION 请求的响应处理函数 ,会执行 。因此,若一个已配对的

CVSS 3.5 · Low

Affected Version Matrix 1

VendorProduct Version RangeStatus
zephyrproject zephyr 4.3.0≤ 4.4.2 affected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-18748

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
Out-of-bounds read in Bluetooth Classic A2DP codec information element handling
Source: CVE Program / CVE List V5
Vulnerability Description
The Bluetooth Classic A2DP host stores a codec Information Element (IE) in struct bt_a2dp_codec_ie, a one-byte len field plus a fixed 8-byte codec_ie[] array. When an AVDTP peer sent a codec IE longer than 8 bytes, a2dp_process_config_ind() in subsys/bluetooth/host/classic/a2dp.c copied only the first 8 bytes but assigned the full, attacker-chosen length to len, and then persisted that inconsistent structure into the application's struct bt_a2dp_stream via stream->codec_config. bt_a2dp_get_config_cb() and bt_a2dp_set_config_cb() had the same truncate-the-copy-but-keep-the-length pattern. Every later consumer trusts len. In particular the responder for an incoming AVDTP GET_CONFIGURATION, a2dp_get_config_ind(), executes net_buf_add_mem(rsp_buf, &ep->stream->codec_config.codec_ie[0], ep->stream->codec_config.len), so a paired BR/EDR peer that first sends a SET_CONFIGURATION carrying an oversized codec IE and then requests the configuration back causes the stack to read up to roughly 245 bytes past the end of the 8-byte array and transmit them in the response. codec_config is the last member of struct bt_a2dp_stream, so the read runs into memory adjacent to the application's stream object. The same inconsistency is also handed to the config_req(), reconfig_req() and get_config_rsp() application callbacks, where a natural memcpy() of len bytes performs a further out-of-bounds read. Reaching the on-air disclosure requires CONFIG_BT_CLASSIC with CONFIG_BT_A2DP, an AVDTP peer that has completed pairing (the AVDTP L2CAP channel requires BT_SECURITY_L2), and a local endpoint registered for a non-SBC codec — BT_A2DP_MPEG1/BT_A2DP_MPEG2/BT_A2DP_ATRAC/BT_A2DP_VENDOR via BT_A2DP_EP_INIT() — because the SBC branch already pins the IE length to 4 bytes. The bt_a2dp_get_config_cb() response path has no such gate and hands the lying length to any application. There is no out-of-bounds write: the net_buf tailroom check bounds the destination, so the impact is limited to disclosure of a bounded region of adjacent RAM to the peer. The fix replaces the hardcoded BT_A2DP_MAX_IE_LENGTH with the configurable CONFIG_BT_A2DP_CODEC_MAX_IE_LEN (default 8, range 4–253), sizes codec_ie[] from it, and rejects any received IE that exceeds it instead of silently truncating, so len can no longer exceed the number of valid bytes.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
Source: CVE Program / CVE List V5
Vulnerability Type
跨界内存读
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
zephyrproject zephyr 4.3.0 ~ 4.4.2 -

II. Public POCs for CVE-2026-18748

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-18748

请登录查看更多情报信息。

Patches & Fixes for CVE-2026-18748 (1)

Vendor Advisories for CVE-2026-18748 (1)

Same Patch Batch · zephyrproject · 2026-10-21 · 8 CVEs total

CVE-2026-19676 7.8 HIGH PECI transfer syscall verifier does not validate embedded user buffer pointers, allowing a
CVE-2026-79976 7.1 HIGH NULL pointer dereference in the MCTP I2C+GPIO target binding triggerable by a peer I2C con
CVE-2026-78118 7.0 HIGH Race condition on kernel wait queues: unlocked z_waitq_head() read in the timer expiration
CVE-2026-78119 6.3 MEDIUM Out-of-bounds write in the Nuvoton NPCX eSPI Target-Attached-Flash receive path from an un
CVE-2026-19947 5.3 MEDIUM Missing kernel object permission check in devmux syscalls allows unprivileged user threads
CVE-2026-78116 5.2 MEDIUM Double free of an RTIO submission in the Broadcom AFBR-S50 sensor driver data-evaluation e
CVE-2026-78117 4.2 MEDIUM Race condition on shared HCI TX descriptor in the Infineon PSOC 6 BLESS Bluetooth driver c

IV. Related Vulnerabilities

V. Comments for CVE-2026-18748

No comments yet


Leave a comment