# CVE-2022-49909: linux: In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: L2CAP: fix use-after-free in l2cap_co...

CVE-2022-49909 is fixed in linux on 1 platform, first by DEBIAN-CVE-2022-49909, released May 1, 2025. It is not reported as exploited. Patch Radar priority: High.

- Web page: https://patchblox.com/security/cve/CVE-2022-49909
- Priority: High
- CVSS: 7.8 (high)
- EPSS: n/a
- CISA KEV: not listed
- Exploited (vendor report): no
- Publicly disclosed: no
- Published: May 1, 2025

## Description

In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: L2CAP: fix use-after-free in l2cap_conn_del()  When l2cap_recv_frame() is invoked to receive data, and the cid is L2CAP_CID_A2MP, if the channel does not exist, it will create a channel. However, after a channel is created, the hold operation of the channel is not performed. In this case, the value of channel reference counting is 1. As a result, after hci_error_reset() is triggered, l2cap_conn_del() invokes the close hook function of A2MP to release the channel. Then  l2cap_chan_unlock(chan) will trigger UAF issue.  The process is as follows: Receive data: l2cap_data_channel()     a2mp_channel_create()  --->channel ref is 2     l2cap_chan_put()       --->channel ref is 1  Triger event:     hci_error_reset()         hci_dev_do_close()         ...         l2cap_disconn_cfm()             l2cap_conn_del()                 l2cap_chan_hold()    --->channel ref is 2                 l2cap_chan_del()     --->channel ref is 1                 a2mp_chan_close_cb() --->channel ref is 0, release channel                 l2cap_chan_unlock()  --->UAF of channel  The detailed Call Trace is as follows: BUG: KASAN: use-after-free in __mutex_unlock_slowpath+0xa6/0x5e0 Read of size 8 at addr ffff8880160664b8 by task kworker/u11:1/7593 Workqueue: hci0 hci_error_reset Call Trace:  <TASK>  dump_stack_lvl+0xcd/0x134  print_report.cold+0x2ba/0x719  kasan_report+0xb1/0x1e0  kasan_check_range+0x140/0x190  __mutex_unlock_slowpath+0xa6/0x5e0  l2cap_conn_del+0x404/0x7b0  l2cap_disconn_cfm+0x8c/0xc0  hci_conn_hash_flush+0x11f/0x260  hci_dev_close_sync+0x5f5/0x11f0  hci_dev_do_close+0x2d/0x70  hci_error_reset+0x9e/0x140  process_one_work+0x98a/0x1620  worker_thread+0x665/0x1080  kthread+0x2e4/0x3a0  ret_from_fork+0x1f/0x30  </TASK>  Allocated by task 7593:  kasan_save_stack+0x1e/0x40  __kasan_kmalloc+0xa9/0xd0  l2cap_chan_create+0x40/0x930  amp_mgr_create+0x96/0x990  a2mp_channel_create+0x7d/0x150  l2cap_recv_frame+0x51b8/0x9a70  l2cap_recv_acldata+0xaa3/0xc00  hci_rx_work+0x702/0x1220  process_one_work+0x98a/0x1620  worker_thread+0x665/0x1080  kthread+0x2e4/0x3a0  ret_from_fork+0x1f/0x30  Freed by task 7593:  kasan_save_stack+0x1e/0x40  kasan_set_track+0x21/0x30  kasan_set_free_info+0x20/0x30  ____kasan_slab_free+0x167/0x1c0  slab_free_freelist_hook+0x89/0x1c0  kfree+0xe2/0x580  l2cap_chan_put+0x22a/0x2d0  l2cap_conn_del+0x3fc/0x7b0  l2cap_disconn_cfm+0x8c/0xc0  hci_conn_hash_flush+0x11f/0x260  hci_dev_close_sync+0x5f5/0x11f0  hci_dev_do_close+0x2d/0x70  hci_error_reset+0x9e/0x140  process_one_work+0x98a/0x1620  worker_thread+0x665/0x1080  kthread+0x2e4/0x3a0  ret_from_fork+0x1f/0x30  Last potentially related work creation:  kasan_save_stack+0x1e/0x40  __kasan_record_aux_stack+0xbe/0xd0  call_rcu+0x99/0x740  netlink_release+0xe6a/0x1cf0  __sock_release+0xcd/0x280  sock_close+0x18/0x20  __fput+0x27c/0xa90  task_work_run+0xdd/0x1a0  exit_to_user_mode_prepare+0x23c/0x250  syscall_exit_to_user_mode+0x19/0x50  do_syscall_64+0x42/0x80  entry_SYSCALL_64_after_hwframe+0x63/0xcd  Second to last potentially related work creation:  kasan_save_stack+0x1e/0x40  __kasan_record_aux_stack+0xbe/0xd0  call_rcu+0x99/0x740  netlink_release+0xe6a/0x1cf0  __sock_release+0xcd/0x280  sock_close+0x18/0x20  __fput+0x27c/0xa90  task_work_run+0xdd/0x1a0  exit_to_user_mode_prepare+0x23c/0x250  syscall_exit_to_user_mode+0x19/0x50  do_syscall_64+0x42/0x80  entry_SYSCALL_64_after_hwframe+0x63/0xcd

## Where it's fixed

| Platform | Product | Fixed in | Fix | Released |
|---|---|---|---|---|
| Linux | linux Debian 11.6 (bullseye) | 5.10.158-1 | [DEBIAN-CVE-2022-49909](https://patchblox.com/security/data/fix/linux/debian-cve-2022-49909.md) | May 1, 2025 |
| Linux | linux Debian 12.15 (bookworm) | 6.0.8-1 | [DEBIAN-CVE-2022-49909](https://patchblox.com/security/data/fix/linux/debian-cve-2022-49909.md) | May 1, 2025 |
| Linux | linux Debian 13.5 (trixie) | 6.0.8-1 | [DEBIAN-CVE-2022-49909](https://patchblox.com/security/data/fix/linux/debian-cve-2022-49909.md) | May 1, 2025 |
| Linux | linux Debian 14 | 6.0.8-1 | [DEBIAN-CVE-2022-49909](https://patchblox.com/security/data/fix/linux/debian-cve-2022-49909.md) | May 1, 2025 |

---

Data as of 2026-11-08T06:59:42Z UTC. Source: Patchblox Patch Radar (https://patchblox.com/security/patch-radar). Patchblox finds out-of-date software on Windows, macOS and Linux and updates it through release rings: https://patchblox.com/demo

Free to use with attribution: show "Data: Patchblox Patch Radar" with a link to https://patchblox.com/security/patch-radar. Terms, including what needs a written agreement: https://patchblox.com/security/patch-radar/use-the-data

Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.
