You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The bt_conn_tx_processor deallocating net_bufs that are holding ACL TX data to be sent when an LE Bluetooth disconnection has taken place.
It uses the l2cap_pull_data function which is responsible for preparing the data to send while returning a net_buf pointer.
the l2cap_pull_data is also responsible for popping the PDU from the channel tx_queue when the last segment (K-frame) has been sent.
The bt_conn_tx_processor does not take into account that l2cap_pull_data is segmenting the data and assumes that returned pointer can be “UNREFED” (freed).
a. only when conn->state is not CONNECTED.
Leading to a write-before-zero when the next segment send is acknowledged.
This 4 bytes that are written are highly controlled by outside attacker and this can form the basis of a reliable exploit.
Impact
Causes a use-after-free, resulting in a write-before-zero (stale buffer is reused and written to).
The written 4 bytes are attacker-controlled, enabling precise memory corruption.
This can form the basis of a reliable remote exploit
Any condition where the attacker has the ability to write an arbitrary value to an arbitrary location, often as the result of a buffer overflow.
Learn more on MITRE.
a. only when conn->state is not CONNECTED.
Impact
Patches
main: #90975
For more information
If you have any questions or comments about this advisory:
embargo: 2025-09-05