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

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-81038— Bluetooth OTS server discloses uninitialized stack memory in failed Calculate Checksum responses

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.

对象传输服务(OTS)服务器在 函数(位于 )中构建对象动作控制点(OACP)响应指示。在本次修复之前,无论结果码如何,只要请求的操作码为 ,就会在响应中追加一个四字节的校验和值字段。该响应的负载是一个在 中通过 声明的未初始化四字节的栈缓冲区,且仅在 成功路径上被填充。在所有失败路径中,该缓冲区仍为空,导致对零长度缓冲区调用了 。 OACP 特征及其客户端特征配置描述符的权限被声明为 以及 ,因此无需配对、加密或认证。任何处于无线电范围内、能够连接到运行 OTS 服务器设备的对等方,均可启用 OACP 指示,并发

CVSS 7.1 · High
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-81038

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
Bluetooth OTS server discloses uninitialized stack memory in failed Calculate Checksum responses
Source: CVE Program / CVE List V5
Vulnerability Description
The Object Transfer Service server builds its Object Action Control Point (OACP) response indication in oacp_ind_send() (subsys/bluetooth/services/ots/ots_oacp.c). Before this fix the four-byte Checksum Value field was appended whenever the requested op code was BT_GATT_OTS_OACP_PROC_CHECKSUM_CALC, regardless of the result code. The response payload is a bare, uninitialized four-byte stack buffer declared with NET_BUF_SIMPLE_DEFINE(resp_param, sizeof(uint32_t)) in bt_gatt_ots_oacp_write(), and it is filled only on the success path of oacp_checksum_proc_validate(). On every failure path the buffer is still empty, so net_buf_simple_pull_le32() was invoked on a zero-length buffer. The OACP characteristic and its client characteristic configuration descriptor are declared with BT_GATT_PERM_WRITE and BT_GATT_PERM_READ | BT_GATT_PERM_WRITE, so no pairing, encryption, or authentication is required. Any peer within radio range that can connect to a device running the OTS server can enable OACP indications and write a nine-byte Calculate Checksum command that fails validation — for example by issuing it with no object selected, which returns BT_GATT_OTS_OACP_RES_INV_OBJ. Because oacp_command_decode() accepts the Calculate Checksum op code unconditionally (it is not guarded by CONFIG_BT_OTS_OACP_CHECKSUM_SUPPORT), builds without checksum support are reachable too: they answer BT_GATT_OTS_OACP_RES_OPCODE_NOT_SUP and take the same bad path. On builds with CONFIG_ASSERT enabled, the zero-length pull trips the assertion inside net_buf_simple_pull_mem() and panics the device, giving a remotely triggered denial of service. On builds with assertions disabled there is no check: the pull returns the untouched stack array and four bytes of uninitialized stack memory are copied into the indication and transmitted to the peer, repeatable on every request. The disclosure is bounded to four bytes per request and the write stays inside the seven-byte res indication buffer, so there is no memory corruption; the impact is uninitialized-memory disclosure plus an availability loss in assertion-enabled configurations.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/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 3.3.0 ~ 4.4.2 -

II. Public POCs for CVE-2026-81038

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

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

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

Vendor Advisories for CVE-2026-81038 (1)

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

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-82388 5.3 MEDIUM Use of a released HFP HF object after a failed RFCOMM connect in the Bluetooth Classic hos
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