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

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-82388— Use of a released HFP HF object after a failed RFCOMM connect in the Bluetooth Classic host

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.

在 中的 函数通过调用 为每个连接分配 HFP 免提(Hands-Free)对象。该创建过程会启动 SDP 发现流程,具体做法是将对象内嵌的 传递给 。此调用会将由调用者拥有的参数块链接到 SDP 客户端的请求列表中(即 中的 )。 如果随后调用的 失败,受影响代码会在 SDP 发现请求尚未完成的情况下,使用 将整个对象清零。这一操作会清零仍链接在 SDP 客户端列表中的 节点,同时也会清零请求中的 、 和 指针,以及可能已排入系统工作队列的 工作项。然而,此时无法撤回该发现请求,因为 虽在 中声明,却未提供实际实

CVSS 5.3 · Medium
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-82388

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
Use of a released HFP HF object after a failed RFCOMM connect in the Bluetooth Classic host
Source: CVE Program / CVE List V5
Vulnerability Description
bt_hfp_hf_connect() in subsys/bluetooth/host/classic/hfp_hf.c allocates the per-connection HFP Hands-Free object with hfp_hf_create(), which starts an SDP discovery by passing the object's embedded hf->sdp_param to bt_sdp_discover(). That call links the caller-owned parameter block into the SDP client's request list (session->reqs in subsys/bluetooth/host/classic/sdp.c). If the subsequent bt_rfcomm_dlc_connect() then failed, the affected code wiped the entire object with (void)memset(new_hf, 0, sizeof(*new_hf)) while that discovery was still outstanding, zeroing the sys_snode_t _node that is still linked in the SDP client's list along with the request's func, uuid and pool pointers, and zeroing the hf->slc_work work item that may already be queued on the system workqueue. The discovery could not be retracted instead: bt_sdp_discover_cancel() is declared in include/zephyr/bluetooth/classic/sdp.h but has no implementation. The failing branch is reachable with peer-supplied input. The documented use of bt_hfp_hf_connect() is to pass the RFCOMM channel read out of the remote Audio Gateway's SDP record; neither bt_sdp_get_proto_param() nor bt_hfp_hf_connect() range-checks that value, so a remote device advertising an HFP AG record with an RFCOMM channel outside 1-30 makes bt_rfcomm_dlc_connect() return -EINVAL and drives the local device into the wipe. The same branch is reached without any application misuse when the remote peer controls connection timing, for example when the RFCOMM session is in BT_RFCOMM_STATE_DISCONNECTING or the ACL is dropped between object creation and the RFCOMM call. Once the object has been wiped, the Bluetooth host continues to use it: sdp_client_alloc_buf() dereferences session->param->pool, which is now NULL, and the SDP receive paths call session->param->func() through a null function pointer, neither of which is NULL-checked. Because the wipe also clears hf->acl, the pool slot is considered free and a retry or an incoming HFP connection re-appends the same still-linked list node, turning session->reqs into a self-referential list that the host's list walkers never leave. The result is a fault or an unrecoverable hang in the Bluetooth host thread; the stray indirect call is through an all-zero pointer whose target the attacker does not control, so the practical impact is denial of service. The fix keeps the object allocated and marks it with a new BT_HFP_HF_FLAG_RELEASING flag, letting bt_hfp_hf_discover_cb() release it once the discovery completes instead of destroying it under the SDP client. Only builds with CONFIG_BT_CLASSIC and CONFIG_BT_HFP_HF enabled are affected.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
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.4.0 ~ 4.5.0 -

II. Public POCs for CVE-2026-82388

# 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-82388

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

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

Vendor Advisories for CVE-2026-82388 (1)

Same Patch Batch · zephyrproject · 2026-10-26 · 6 CVEs total

CVE-2026-81038 7.1 HIGH Bluetooth OTS server discloses uninitialized stack memory in failed Calculate Checksum res
CVE-2026-82389 6.5 MEDIUM Bluetooth Classic HFP AG wipes an object still linked in the SDP request list on connect f
CVE-2026-81039 4.3 MEDIUM Bluetooth Host connection reservation leak when multiple connectable advertising sets shar
CVE-2026-19742 3.7 LOW IPv6 stable and temporary interface identifiers derived from a non-cryptographic PRNG secr
CVE-2026-82390 3.7 LOW Cross-session AES key confusion in the Espressif ESP32 hardware crypto driver

IV. Related Vulnerabilities