CVE-2022-49910
published 2025-05-01CVE-2022-49910: In the Linux kernel, the following vulnerability has been resolved: Bluetooth: L2CAP: Fix use-after-free caused by l2cap_reassemble_sdu Fix the race condition…
PriorityP339high7.8CVSS 3.1
AVLACLPRLUINSUCHIHAH
EPSS
0.19%
9.5th percentile
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: L2CAP: Fix use-after-free caused by l2cap_reassemble_sdu
Fix the race condition between the following two flows that run in
parallel:
1. l2cap_reassemble_sdu -> chan->ops->recv (l2cap_sock_recv_cb) ->
__sock_queue_rcv_skb.
2. bt_sock_recvmsg -> skb_recv_datagram, skb_free_datagram.
An SKB can be queued by the first flow and immediately dequeued and
freed by the second flow, therefore the callers of l2cap_reassemble_sdu
can't use the SKB after that function returns. However, some places
continue accessing struct l2cap_ctrl that resides in the SKB's CB for a
short time after l2cap_reassemble_sdu returns, leading to a
use-after-free condition (the stack trace is below, line numbers for
kernel 5.19.8).
Fix it by keeping a local copy of struct l2cap_ctrl.
BUG: KASAN: use-after-free in l2cap_rx_state_recv (net/bluetooth/l2cap_core.c:6906) bluetooth
Read of size 1 at addr ffff88812025f2f0 by task kworker/u17:3/43169
Workqueue: hci0 hci_rx_work [bluetooth]
Call Trace:
dump_stack_lvl (lib/dump_stack.c:107 (discriminator 4))
print_report.cold (mm/kasan/report.c:314 mm/kasan/report.c:429)
? l2cap_rx_state_recv (net/bluetooth/l2cap_core.c:6906) bluetooth
kasan_report (mm/kasan/report.c:162 mm/kasan/report.c:493)
? l2cap_rx_state_recv (net/bluetooth/l2cap_core.c:6906) bluetooth
l2cap_rx_state_recv (net/bluetooth/l2cap_core.c:6906) bluetooth
l2cap_rx (net/bluetooth/l2cap_core.c:7236 net/bluetooth/l2cap_core.c:7271) bluetooth
ret_from_fork (arch/x86/entry/entry_64.S:306)
Allocated by task 43169:
kasan_save_stack (mm/kasan/common.c:39)
__kasan_slab_alloc (mm/kasan/common.c:45 mm/kasan/common.c:436 mm/kasan/common.c:469)
kmem_cache_alloc_node (mm/slab.h:750 mm/slub.c:3243 mm/slub.c:3293)
__alloc_skb (net/core/skbuff.c:414)
l2cap_recv_frag (./include/net/bluetooth/bluetooth.h:425 net/bluetooth/l2cap_core.c:8329) bluetooth
l2cap_recv_acldata (net/bluetooth/l2cap_core.c:8442) bluetooth
hci_rx_work
Affected
22 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| debian | linux | < linux 6.0.8-1 (bookworm) | linux 6.0.8-1 (bookworm) |
| linux | linux | — | — |
| linux | linux | >= 4b51dae96731c9d82f5634e75ac7ffd3b9c1b060 < dc30e05bb18852303084430c03ca76e69257d9ea | dc30e05bb18852303084430c03ca76e69257d9ea |
| linux | linux | >= 4b51dae96731c9d82f5634e75ac7ffd3b9c1b060 < 03af22e23b96fb7ef75fb7885407ef457e8b403d | 03af22e23b96fb7ef75fb7885407ef457e8b403d |
| linux | linux | >= 4b51dae96731c9d82f5634e75ac7ffd3b9c1b060 < 6c7407bfbeafc80a04e6eaedcf34d378532a04f2 | 6c7407bfbeafc80a04e6eaedcf34d378532a04f2 |
| linux | linux | >= 4b51dae96731c9d82f5634e75ac7ffd3b9c1b060 < 4cd094fd5d872862ca278e15b9b51b07e915ef3f | 4cd094fd5d872862ca278e15b9b51b07e915ef3f |
| linux | linux | >= 4b51dae96731c9d82f5634e75ac7ffd3b9c1b060 < cb1c012099ef5904cd468bdb8d6fcdfdd9bcb569 | cb1c012099ef5904cd468bdb8d6fcdfdd9bcb569 |
| linux | linux | >= 4b51dae96731c9d82f5634e75ac7ffd3b9c1b060 < 8278a87bb1eeea94350d675ef961ee5a03341fde | 8278a87bb1eeea94350d675ef961ee5a03341fde |
| linux | linux | >= 4b51dae96731c9d82f5634e75ac7ffd3b9c1b060 < 9a04161244603f502c6e453913e51edd59cb70c1 | 9a04161244603f502c6e453913e51edd59cb70c1 |
| linux | linux | >= 4b51dae96731c9d82f5634e75ac7ffd3b9c1b060 < 3aff8aaca4e36dc8b17eaa011684881a80238966 | 3aff8aaca4e36dc8b17eaa011684881a80238966 |
| linux | linux_kernel | — | — |
| linux | linux_kernel | >= 0 < 5.10.158-1 | 5.10.158-1 |
| linux | linux_kernel | >= 0 < 6.0.8-1 | 6.0.8-1 |
| linux | linux_kernel | >= 0 < 6.0.8-1 | 6.0.8-1 |
| linux | linux_kernel | >= 0 < 6.0.8-1 | 6.0.8-1 |
| linux | linux_kernel | >= 3.6 < 4.9.333 | 4.9.333 |
| linux | linux_kernel | >= 4.10 < 4.14.299 | 4.14.299 |
| linux | linux_kernel | >= 4.15 < 4.19.265 | 4.19.265 |
| linux | linux_kernel | >= 4.20 < 5.4.224 | 5.4.224 |
| linux | linux_kernel | >= 5.11 < 5.15.78 | 5.15.78 |
| linux | linux_kernel | >= 5.16 < 6.0.8 | 6.0.8 |
| linux | linux_kernel | >= 5.5 < 5.10.154 | 5.10.154 |
CVSS provenance
nvdv3.17.8HIGHCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
osv7.8HIGH
vendor_debian7.8HIGH
vendor_redhat7.8HIGH
Stop checking back — get the weekly exploitation signal.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
OSV
CVE-2022-49910: In the Linux kernel, the following vulnerability has been resolved: Bluetooth: L2CAP: Fix use-after-free caused by l2cap_reassemble_sdu Fix the race c
osv·2025-05-01·CVSS 7.8
CVE-2022-49910 [HIGH] CVE-2022-49910: In the Linux kernel, the following vulnerability has been resolved: Bluetooth: L2CAP: Fix use-after-free caused by l2cap_reassemble_sdu Fix the race c
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: L2CAP: Fix use-after-free caused by l2cap_reassemble_sdu Fix the race condition between the following two flows that run in parallel: 1. l2cap_reassemble_sdu -> chan->ops->recv (l2cap_sock_recv_cb) -> __sock_queue_rcv_skb. 2. bt_sock_recvmsg -> skb_recv_datagram, skb_free_datagram. An SKB can be queued by the first flow and immediately dequeued and freed by the second flow, therefore the callers of l2cap_reassemble_sdu can't use the SKB after that function returns. However, some places continue accessing struct l2cap_ctrl that resides in the SKB's CB for a short time after l2cap_reassemble_sdu returns, leading to a use-after-free condition (the stack trace is below, line numbers for kernel 5.19.8). Fix it by kee
GHSA
GHSA-3vg9-6vwr-fh6q: In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: L2CAP: Fix use-after-free caused by l2cap_reassemble_sdu
Fix the race
ghsa_unreviewed·2025-05-01
CVE-2022-49910 [HIGH] CWE-416 GHSA-3vg9-6vwr-fh6q: In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: L2CAP: Fix use-after-free caused by l2cap_reassemble_sdu
Fix the race
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: L2CAP: Fix use-after-free caused by l2cap_reassemble_sdu
Fix the race condition between the following two flows that run in
parallel:
1. l2cap_reassemble_sdu -> chan->ops->recv (l2cap_sock_recv_cb) ->
__sock_queue_rcv_skb.
2. bt_sock_recvmsg -> skb_recv_datagram, skb_free_datagram.
An SKB can be queued by the first flow and immediately dequeued and
freed by the second flow, therefore the callers of l2cap_reassemble_sdu
can't use the SKB after that function returns. However, some places
continue accessing struct l2cap_ctrl that resides in the SKB's CB for a
short time after l2cap_reassemble_sdu returns, leading to a
use-after-free condition (the stack trace is below, line numbers for
kernel 5.19.8).
Fix it
Red Hat
kernel: Bluetooth: L2CAP: Fix use-after-free caused by l2cap_reassemble_sdu
vendor_redhat·2025-05-01·CVSS 7.8
CVE-2022-49910 [HIGH] CWE-416 kernel: Bluetooth: L2CAP: Fix use-after-free caused by l2cap_reassemble_sdu
kernel: Bluetooth: L2CAP: Fix use-after-free caused by l2cap_reassemble_sdu
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: L2CAP: Fix use-after-free caused by l2cap_reassemble_sdu
Fix the race condition between the following two flows that run in
parallel:
1. l2cap_reassemble_sdu -> chan->ops->recv (l2cap_sock_recv_cb) ->
__sock_queue_rcv_skb.
2. bt_sock_recvmsg -> skb_recv_datagram, skb_free_datagram.
An SKB can be queued by the first flow and immediately dequeued and
freed by the second flow, therefore the callers of l2cap_reassemble_sdu
can't use the SKB after that function returns. However, some places
continue accessing struct l2cap_ctrl that resides in the SKB's CB for a
short time after l2cap_reassemble_sdu returns, leading to a
use-after-free condit
Debian
CVE-2022-49910: linux - In the Linux kernel, the following vulnerability has been resolved: Bluetooth: ...
vendor_debian·2022·CVSS 7.8
CVE-2022-49910 [HIGH] CVE-2022-49910: linux - In the Linux kernel, the following vulnerability has been resolved: Bluetooth: ...
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: L2CAP: Fix use-after-free caused by l2cap_reassemble_sdu Fix the race condition between the following two flows that run in parallel: 1. l2cap_reassemble_sdu -> chan->ops->recv (l2cap_sock_recv_cb) -> __sock_queue_rcv_skb. 2. bt_sock_recvmsg -> skb_recv_datagram, skb_free_datagram. An SKB can be queued by the first flow and immediately dequeued and freed by the second flow, therefore the callers of l2cap_reassemble_sdu can't use the SKB after that function returns. However, some places continue accessing struct l2cap_ctrl that resides in the SKB's CB for a short time after l2cap_reassemble_sdu returns, leading to a use-after-free condition (the stack trace is below, line numbers for kernel 5.19.8). Fix it by kee
No detection rules found.
No public exploits indexed.
https://git.kernel.org/stable/c/03af22e23b96fb7ef75fb7885407ef457e8b403dhttps://git.kernel.org/stable/c/3aff8aaca4e36dc8b17eaa011684881a80238966https://git.kernel.org/stable/c/4cd094fd5d872862ca278e15b9b51b07e915ef3fhttps://git.kernel.org/stable/c/6c7407bfbeafc80a04e6eaedcf34d378532a04f2https://git.kernel.org/stable/c/8278a87bb1eeea94350d675ef961ee5a03341fdehttps://git.kernel.org/stable/c/9a04161244603f502c6e453913e51edd59cb70c1https://git.kernel.org/stable/c/cb1c012099ef5904cd468bdb8d6fcdfdd9bcb569https://git.kernel.org/stable/c/dc30e05bb18852303084430c03ca76e69257d9ea
2025-05-01
Published