CVE-2026-10685: Use-after-free of GATT subscribe params in Bluetooth host CCC-write response handler

Published Jul 31, 2026
·
Updated

The Zephyr Bluetooth GATT client CCC-write response handler gattwritecccrsp() in subsys/bluetooth/host/gatt.c invoked the application's params->subscribe() callback after it had already called params->notify(conn, params, NULL, 0).

Per the public GATT API, a notify callback with NULL data is the documented signal that the subscription has terminated and the btgattsubscribeparams struct may be freed or reused by the application; calling subscribe() on the struct afterwards is a use-after-free, including an indirect call through the freed params->subscribe function pointer.

The error branch is remotely (adjacent) reachable: a Zephyr device acting as a GATT client that calls btgattsubscribe() can be driven into this ordering when a connected GATT server peer answers the CCC write with an ATT Error Response (the peer-supplied error code flows through atterrorrsp -> atthandlersp into gattwritecccrsp).

For applications that free or recycle subscription parameters in their notification-termination handler, this results in memory corruption, a crash (denial of service), or potentially attacker-influenced control flow. The fix reorders the handler so the subscribe() callback runs before the terminating notify(NULL) in both the error and unsubscribe paths.

Affected Software

2 affected components
Zephyr Bluetooth GATT host
zephyrproject zephyr>=2.4.0<4.5.0

Event History

Jul 31, 2026
CVE Published
via MITRE·02:41 PM
Data Sourced
via MITRE·02:41 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·03:16 PM
RemedyDescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2026-10685?

The severity of CVE-2026-10685 is rated high with a score of 7.6.

2

What is the risk associated with CVE-2026-10685?

The risk associated with CVE-2026-10685 is categorized as 58.

3

How do I fix CVE-2026-10685?

To fix CVE-2026-10685, update the Zephyr Bluetooth GATT host software to the latest version that addresses the vulnerability.

4

What causes the CVE-2026-10685 vulnerability?

CVE-2026-10685 is caused by a use-after-free error in the Bluetooth GATT client's CCC-write response handler.

5

What type of software is affected by CVE-2026-10685?

CVE-2026-10685 affects the Zephyr Bluetooth GATT host software.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203