CVE-2026-19935: Zephyr Bluetooth LE L2CAP use-after-free on dynamic channel teardown

CVE-2026-19935 · Severity: high · CVSS 7.5 · Published 2026-10-11

Zephyr's Bluetooth stack has a flaw in how it handles connection-oriented channel cleanup when using dynamic PSM connections. A remote attacker can trigger a use-after-free condition by sending specific L2CAP frames, allowing memory corruption that could lead to crashes, information disclosure, or denial of service in Bluetooth-enabled embedded devices.

Technologies: Zephyr Project Zephyr RTOS. Vendors: Zephyr Project.

Quick answers

Is CVE-2026-19935 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-19935 being exploited in the wild.
How severe is CVE-2026-19935?
High severity, with a CVSS score of 7.5, published 11 October 2026.
Which products and versions are affected?
Zephyr Project Zephyr RTOS versions with CONFIG_BT_L2CAP_DYNAMIC_CHANNEL enabled using dynamic PSMs.
Is there a fix for CVE-2026-19935?
Yes: fixed in Versions patching subsys/bluetooth/host/l2cap.c to route channel RX work to the Bluetooth workqueue and explicitly cancel rx_work in l2cap_chan_destroy(). Until then: Disable CONFIG_BT_L2CAP_DYNAMIC_CHANNEL if dynamic PSM channels are not required, or use only SIG-assigned PSMs (EATT 0x0027, OTS 0x0025) which are not vulnerable. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-19935 attacked?
It is in an operating system.
Am I affected by CVE-2026-19935?
Check whether you run Zephyr Project Zephyr RTOS at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • Fixed in: Versions patching subsys/bluetooth/host/l2cap.c to route channel RX work to the Bluetooth workqueue and explicitly cancel rx_work in l2cap_chan_destroy()

Disable CONFIG_BT_L2CAP_DYNAMIC_CHANNEL if dynamic PSM channels are not required, or use only SIG-assigned PSMs (EATT 0x0027, OTS 0x0025) which are not vulnerable.

Technical details

The vulnerability is a use-after-free in the L2CAP (Logical Link Control and Adaptation Protocol) subsystem when dynamic channels are torn down. When a remote peer sends an L2CAP K-frame followed immediately by a Disconnect Request on a dynamic PSM channel, the rx_work handler scheduled on the system workqueue can execute after the channel object has been freed by the application. This occurs because the Bluetooth RX workqueue (higher priority) processes the disconnect before the system workqueue can drain the pending rx_work item. Memory corruption results if the freed memory is reallocated or if the channel object is reused for a new connection.

Affected products

  • Zephyr Project Zephyr RTOS versions with CONFIG_BT_L2CAP_DYNAMIC_CHANNEL enabled using dynamic PSMs

Timeline

  • 2026-10-11: disclosed

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.