CVE-2022-49908: Bluetooth: L2CAP: Fix memory leak in vhci_write
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: L2CAP: Fix memory leak in vhci_write
Syzkaller reports a memory leak as follows:
====================================
BUG: memory leak
unreferenced object 0xffff88810d81ac00 (size 240):
[...]
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace:
[<ffffffff838733d9>] __alloc_skb+0x1f9/0x270 net/core/skbuff.c:418
[<ffffffff833f742f>] alloc_skb include/linux/skbuff.h:1257 [inline]
[<ffffffff833f742f>] bt_skb_alloc include/net/bluetooth/bluetooth.h:469 [inline]
[<ffffffff833f742f>] vhci_get_user drivers/bluetooth/hci_vhci.c:391 [inline]
[<ffffffff833f742f>] vhci_write+0x5f/0x230 drivers/bluetooth/hci_vhci.c:511
[<ffffffff815e398d>] call_write_iter include/linux/fs.h:2192 [inline]
[<ffffffff815e398d>] new_sync_write fs/read_write.c:491 [inline]
[<ffffffff815e398d>] vfs_write+0x42d/0x540 fs/read_write.c:578
[<ffffffff815e3cdd>] ksys_write+0x9d/0x160 fs/read_write.c:631
[<ffffffff845e0645>] do_syscall_x64 arch/x86/entry/common.c:50 [inline]
[<ffffffff845e0645>] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
[<ffffffff84600087>] entry_SYSCALL_64_after_hwframe+0x63/0xcd
====================================
HCI core will uses hci_rx_work() to process frame, which is queued to
the hdev->rx_q tail in hci_recv_frame() by HCI driver.
Yet the problem is that, HCI core may not free the skb after handling
ACL data packets. To be more specific, when start fragment does not
contain the L2CAP length, HCI core just copies skb into conn->rx_skb and
finishes frame process in l2cap_recv_acldata(), without freeing the skb,
which triggers the above memory leak.
This patch solves it by releasing the relative skb, after processing
the above case in l2cap_recv_acldata().
Security readout for executives and security teams
Plain-English summary
CVE-2022-49908 is a Linux kernel Bluetooth memory leak. A local user with low privileges could trigger memory consumption in the affected Bluetooth path, potentially reducing system availability. The sources do not show data theft, integrity impact, remote reachability, or active exploitation.
Executive priority
Treat this as a moderate availability risk, not an emergency remote compromise. Patch during the normal kernel maintenance cycle, faster for shared Linux hosts or systems where untrusted local users can access Bluetooth-related interfaces.
Technical view
The flaw is CWE-401 in Linux Bluetooth L2CAP handling through vhci_write. Certain ACL packet fragmentation handling can leave an skb referenced without freeing it in l2cap_recv_acldata. The fix releases the relevant skb after that processing case. CVSS is 5.5, local attack vector, low complexity, low privileges, availability impact only.
Likely exposure
Exposure is most relevant to Linux systems running affected kernels with Bluetooth/HCI virtual device functionality reachable by local users. The bundle lists affected Linux versions including 5.12, 5.15.78, 6.0.8, and 6.1, but distribution backport status is not provided.
Exploitation context
The provided evidence indicates syzkaller found the issue. KEV is false, and the bundle provides no evidence of in-the-wild exploitation or public weaponization. Exploitation requires local access with some privileges according to the CVSS vector.
Researcher notes
The source bundle identifies the root cause and stable commit references, but not distro package status, exact full affected version ranges, or real-world exploit evidence. Analysis should focus on local reachability of the vulnerable Bluetooth/VHCI path and whether kernel fixes are present.
Mitigation direction
Update to a vendor-supported kernel containing the referenced stable fixes.
Check Linux distribution advisories for backported CVE-2022-49908 fixes.
Limit local user access on systems where Bluetooth paths are enabled.
Disable unnecessary Bluetooth or VHCI functionality where operationally feasible.
Monitor memory pressure and kernel stability until patched.
Validation and detection
Inventory Linux kernel versions on systems with Bluetooth enabled.
Confirm installed kernels include vendor fixes for CVE-2022-49908.
Review whether VHCI or Bluetooth test interfaces are exposed locally.
Validate Bluetooth functionality after applying kernel updates.
Track vendor advisories because distribution version mapping is not included.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-401: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-401 · source CWE mapping
Missing Release of Memory after Effective Lifetime
Missing Release of Memory after Effective Lifetime represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.