CVE-2026-11368: use-after-free in zephyrproject zephyr
The Bluetooth host ATT layer (subsys/bluetooth/host/att.c) associates each in-flight ATT TX buffer with its owning channel via the static tx_meta_data_storage[] array (data->att_chan = chan). When a buffer's last reference is dropped, its net-buf destroy callback defers the completion handling to the system workqueue (att_tx_destroy -> att_tx_destroy_work_handler -> att_on_sent_cb -> bt_att_sent), where bt_att_sent dereferences the channel and its ATT context (sys_slist_get(&att->reqs)). When a peer disconnects while an ATT PDU (a server notification/indication or any response) is still in flight in the controller TX path, L2CAP tears the channel down in l2cap_chan_del(): it runs the disconnected callback and then the released callback (bt_att_released), which frees the channel slab slot. Because the in-flight buffer is held by the connection TX path rather than the channel's own queue, its deferred destroy work can run after the channel has been freed. The att_on_sent_cb guard intended to drop the stale callback itself dereferences meta->att_chan, which is now a dangling pointer into a freed (and possibly reused) slab slot. A remote peer with an ATT connection can drive this by disconnecting during routine ATT traffic; no pairing or user interaction is required to reach the ATT bearer. The result is a use-after-free read/write of freed channel memory, reliably crashing the Bluetooth host (denial of service) and, because the channel slab slot may be reused, potentially corrupting live memory. The fix makes bt_att_released() NULL the att_chan field of every tx_meta_data_storage[] entry still referencing the channel before freeing it, so the deferred guard observes a NULL pointer and drops the callback. Teardown and the destroy work both run on the cooperative system workqueue, so the array update is serialized and needs no lock.
AI Analysis
Technical Summary
The vulnerability exists in the Bluetooth host ATT layer of Zephyr (subsys/bluetooth/host/att.c) where in-flight ATT TX buffers are associated with their owning channel via a static array. When a peer disconnects during ATT traffic, the channel is freed but deferred destroy callbacks may still reference the freed channel memory, causing a use-after-free. This can lead to denial of service by crashing the Bluetooth host and possible memory corruption if the freed slab slot is reused. The fix involves nullifying references to the channel in the tx_meta_data_storage array before freeing the channel to prevent dereferencing dangling pointers.
Potential Impact
A remote attacker with an ATT connection can cause a use-after-free condition by disconnecting during ATT traffic, leading to a denial of service via Bluetooth host crash and potential memory corruption. No privileges or user interaction are required. The impact is limited to the Bluetooth host component within affected Zephyr versions.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. The described fix nullifies channel references before freeing to prevent use-after-free. Until an official fix is available, avoid exposing vulnerable Zephyr Bluetooth hosts to untrusted ATT peers or disconnect ATT connections carefully to reduce risk.
CVE-2026-11368: use-after-free in zephyrproject zephyr
Description
The Bluetooth host ATT layer (subsys/bluetooth/host/att.c) associates each in-flight ATT TX buffer with its owning channel via the static tx_meta_data_storage[] array (data->att_chan = chan). When a buffer's last reference is dropped, its net-buf destroy callback defers the completion handling to the system workqueue (att_tx_destroy -> att_tx_destroy_work_handler -> att_on_sent_cb -> bt_att_sent), where bt_att_sent dereferences the channel and its ATT context (sys_slist_get(&att->reqs)). When a peer disconnects while an ATT PDU (a server notification/indication or any response) is still in flight in the controller TX path, L2CAP tears the channel down in l2cap_chan_del(): it runs the disconnected callback and then the released callback (bt_att_released), which frees the channel slab slot. Because the in-flight buffer is held by the connection TX path rather than the channel's own queue, its deferred destroy work can run after the channel has been freed. The att_on_sent_cb guard intended to drop the stale callback itself dereferences meta->att_chan, which is now a dangling pointer into a freed (and possibly reused) slab slot. A remote peer with an ATT connection can drive this by disconnecting during routine ATT traffic; no pairing or user interaction is required to reach the ATT bearer. The result is a use-after-free read/write of freed channel memory, reliably crashing the Bluetooth host (denial of service) and, because the channel slab slot may be reused, potentially corrupting live memory. The fix makes bt_att_released() NULL the att_chan field of every tx_meta_data_storage[] entry still referencing the channel before freeing it, so the deferred guard observes a NULL pointer and drops the callback. Teardown and the destroy work both run on the cooperative system workqueue, so the array update is serialized and needs no lock.
CVSS v3.1
Score 7.1high
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability exists in the Bluetooth host ATT layer of Zephyr (subsys/bluetooth/host/att.c) where in-flight ATT TX buffers are associated with their owning channel via a static array. When a peer disconnects during ATT traffic, the channel is freed but deferred destroy callbacks may still reference the freed channel memory, causing a use-after-free. This can lead to denial of service by crashing the Bluetooth host and possible memory corruption if the freed slab slot is reused. The fix involves nullifying references to the channel in the tx_meta_data_storage array before freeing the channel to prevent dereferencing dangling pointers.
Potential Impact
A remote attacker with an ATT connection can cause a use-after-free condition by disconnecting during ATT traffic, leading to a denial of service via Bluetooth host crash and potential memory corruption. No privileges or user interaction are required. The impact is limited to the Bluetooth host component within affected Zephyr versions.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. The described fix nullifies channel references before freeing to prevent use-after-free. Until an official fix is available, avoid exposing vulnerable Zephyr Bluetooth hosts to untrusted ATT peers or disconnect ATT connections carefully to reduce risk.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- zephyr
- Date Reserved
- 2026-06-05T12:00:57.310Z
- Cvss Version
- 3.1
- State
- PUBLISHED
- Remediation Level
- null
Threat ID: 6a71fdb5bf8831d539fad992
Added to database: 08/04/2026, 14:56:53 UTC
Last enriched: 08/04/2026, 15:28:49 UTC
Last updated: 08/04/2026, 18:34:00 UTC
Views: 2
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.