CVE-2022-49111: Bluetooth: Fix use after free in hci_send_acl
Noroxi assessment
Priority: Monitor (action score 35/100)
- The sources we track (CISA KEV, Exploit-DB, Metasploit, Nuclei, GitHub) show no public exploit code or exploitation in the wild.
- Probability of exploitation in the next 30 days: 0.34% (FIRST EPSS).
- Someone on the same network segment can trigger it. No account or password is required. No user action is required. No special conditions are required; it is repeatable.
- Fixed version: Linux Linux 2cc803804ec9a296b3156855d6c8c4ca1c6b84be, 3803d896ddd97c7c16689a5381c0960040727647, 4da302b90b96c309987eb9b37c8547f939f042d2.
Low priority for now. Upgrade to Linux Linux 2cc803804ec9a296b3156855d6c8c4ca1c6b84be, 3803d896ddd97c7c16689a5381c0960040727647, 4da302b90b96c309987eb9b37c8547f939f042d2 or later.
Generated automatically from the record's data: CVSS (NVD and CNA), CISA KEV and SSVC, FIRST EPSS, exploit sources, fixed versions. How we calculate it
Primary sources: NVD · CVE.org · FIRST EPSS
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: Fix use after free in hci_send_acl This fixes the following trace caused by receiving HCI_EV_DISCONN_PHY_LINK_COMPLETE which does call hci_conn_del without first checking if conn->type is in fact AMP_LINK and in case it is do properly cleanup upper layers with hci_disconn_cfm: ================================================================== BUG: KASAN: use-after-free in hci_send_acl+0xaba/0xc50 Read of size 8 at addr ffff88800e404818 by task bluetoothd/142 CPU: 0 PID: 142 Comm: bluetoothd Not tainted 5.17.0-rc5-00006-gda4022eeac1a #7 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.14.0-0-g155821a1990b-prebuilt.qemu.org 04/01/2014 Call Trace: <TASK> dump_stack_lvl+0x45/0x59 print_address_description.constprop.0+0x1f/0x150 kasan_report.cold+0x7f/0x11b hci_send_acl+0xaba/0xc50 l2cap_do_send+0x23f/0x3d0 l2cap_chan_send+0xc06/0x2cc0 l2cap_sock_sendmsg+0x201/0x2b0 sock_sendmsg+0xdc/0x110 sock_write_iter+0x20f/0x370 do_iter_readv_writev+0x343/0x690 do_iter_write+0x132/0x640 vfs_writev+0x198/0x570 do_writev+0x202/0x280 do_syscall_64+0x38/0x90 entry_SYSCALL_64_after_hwframe+0x44/0xae RSP: 002b:00007ffce8a099b8 EFLAGS: 00000246 ORIG_RAX: 0000000000000014 Code: 0f 00 f7 d8 64 89 02 48 c7 c0 ff ff ff ff eb b8 0f 1f 00 f3 0f 1e fa 64 8b 04 25 18 00 00 00 85 c0 75 10 b8 14 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 51 c3 48 83 ec 28 89 54 24 1c 48 89 74 24 10 RDX: 0000000000000001 RSI: 00007ffce8a099e0 RDI: 0000000000000015 RAX: ffffffffffffffda RBX: 00007ffce8a099e0 RCX: 00007f788fc3cf77 R10: 00007ffce8af7080 R11: 0000000000000246 R12: 000055e4ccf75580 RBP: 0000000000000015 R08: 0000000000000002 R09: 0000000000000001 </TASK> R13: 000055e4ccf754a0 R14: 000055e4ccf75cd0 R15: 000055e4ccf4a6b0 Allocated by task 45: kasan_save_stack+0x1e/0x40 __kasan_kmalloc+0x81/0xa0 hci_chan_create+0x9a/0x2f0 l2cap_conn_add.part.0+0x1a/0xdc0 l2cap_connect_cfm+0x236/0x1000 le_conn_complete_evt+0x15a7/0x1db0 hci_le_conn_complete_evt+0x226/0x2c0 hci_le_meta_evt+0x247/0x450 hci_event_packet+0x61b/0xe90 hci_rx_work+0x4d5/0xc50 process_one_work+0x8fb/0x15a0 worker_thread+0x576/0x1240 kthread+0x29d/0x340 ret_from_fork+0x1f/0x30 Freed by task 45: kasan_save_stack+0x1e/0x40 kasan_set_track+0x21/0x30 kasan_set_free_info+0x20/0x30 __kasan_slab_free+0xfb/0x130 kfree+0xac/0x350 hci_conn_cleanup+0x101/0x6a0 hci_conn_del+0x27e/0x6c0 hci_disconn_phylink_complete_evt+0xe0/0x120 hci_event_packet+0x812/0xe90 hci_rx_work+0x4d5/0xc50 process_one_work+0x8fb/0x15a0 worker_thread+0x576/0x1240 kthread+0x29d/0x340 ret_from_fork+0x1f/0x30 The buggy address belongs to the object at ffff88800c0f0500 The buggy address is located 24 bytes inside of which belongs to the cache kmalloc-128 of size 128 The buggy address belongs to the page: 128-byte region [ffff88800c0f0500, ffff88800c0f0580) flags: 0x100000000000200(slab|node=0|zone=1) page:00000000fe45cd86 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0xc0f0 raw: 0000000000000000 0000000080100010 00000001ffffffff 0000000000000000 raw: 0100000000000200 ffffea00003a2c80 dead000000000004 ffff8880078418c0 page dumped because: kasan: bad access detected ffff88800c0f0400: 00 00 00 00 00 00 00 00 00 00 00 00 00 fc fc fc Memory state around the buggy address: >ffff88800c0f0500: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ffff88800c0f0480: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc ffff88800c0f0580: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc ---truncated---
- Published
- Feb 26, 2025
- Updated
- Aug 5, 2026
- EPSS
- 0.3% · 27th percentile
- CWE
- CWE-416
Report tools
Action score
35
Monitor
Low priority for now.
- CVSS
- 35 / 40 · 8.8 / 10
- CISA KEV
- 0 / 30 · Not listed
- EPSS
- 0 / 30 · 0.3%
CISA SSVC decision
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
Vulnrichment: CISA's decision-tree inputs.
CNA vs NVD score
- NVD
- —
- CNA · Linux
- 8.8
- NVD has not scored this yet; the score shown is the CNA’s.
The score given by the assigning authority versus NVD’s independent score. A gap means the severity is contested.
Get told when this record changes
- Not in KEV: no record of exploitation in the wild
- No public exploit code on record
- A fix has been released
If any of these changes, we'll tell you in the daily email digest.
Running WordPress? Scan your site free with WP Lens
Noroxi analysis
What does it mean in your environment?
The assessment above is generated automatically from the record's data; it doesn't know your environment. Our team verifies on your systems whether this vulnerability is actually exploitable and which mitigation is enough.
We use this product, ask for helpAffected systems
Is your version affected?
Pick the product and type the version you run. It's compared with this record's version ranges in your browser; the version isn't sent anywhere.
| Vendor | Product | CPE |
|---|---|---|
| linux | linux kernel | cpe:2.3:o:linux:linux_kernel |
Affected versions
NVD version ranges (for catalog products). Add the product to your stack with a version and matching uses these.
- linux linux kernelbefore 4.9.311
- linux linux kernel4.10 and later · before 4.14.276
- linux linux kernel4.15 and later · before 4.19.238
- linux linux kernel4.20 and later · before 5.4.189
- linux linux kernel5.5 and later · before 5.10.111
- linux linux kernel5.11 and later · before 5.15.34
- linux linux kernel5.16 and later · before 5.16.20
- linux linux kernel5.17 and later · before 5.17.3
Versions reported by the vendor
Affected version ranges reported by the assigning authority (Linux). Independent of NVD's CPE analysis and usually ahead of it.
Linux Linux
- 3.8affected
- 9eef6b3a9e38d5f8ad315b2a7db153392e6a77d6 and later · before c41de54b0a963e59e4dd04c029a4a6d73f45ef9caffected · git
- 9eef6b3a9e38d5f8ad315b2a7db153392e6a77d6 and later · before 643a6c26bd32e339d00ad97b8822b6db009e803caffected · git
- 9eef6b3a9e38d5f8ad315b2a7db153392e6a77d6 and later · before 684e505406abaeabe0058e9776f9210bf2747953affected · git
- 9eef6b3a9e38d5f8ad315b2a7db153392e6a77d6 and later · before 3803d896ddd97c7c16689a5381c0960040727647affected · git
- 9eef6b3a9e38d5f8ad315b2a7db153392e6a77d6 and later · before 2cc803804ec9a296b3156855d6c8c4ca1c6b84beaffected · git
- 9eef6b3a9e38d5f8ad315b2a7db153392e6a77d6 and later · before d404765dffdbd8dcd14758695d0c96c52fb2e624affected · git
- 9eef6b3a9e38d5f8ad315b2a7db153392e6a77d6 and later · before 4da302b90b96c309987eb9b37c8547f939f042d2affected · git
- 9eef6b3a9e38d5f8ad315b2a7db153392e6a77d6 and later · before b3c2ea1fd444b3bb7b82bfd2c3a45418f85c2502affected · git
- 9eef6b3a9e38d5f8ad315b2a7db153392e6a77d6 and later · before f63d24baff787e13b723d86fe036f84bdbc35045affected · git
Package-level exposure
OSV and GitHub Advisory data: ecosystem, package and range. SBOM matching uses this table.
| Ecosystem | Package | Affected range | Fix |
|---|---|---|---|
| AlmaLinux:8 | bpftool | before 4.18.0-553.60.1.el8_10 | 4.18.0-553.60.1.el8_10 |
| AlmaLinux:8 | kernel | before 4.18.0-553.60.1.el8_10 | 4.18.0-553.60.1.el8_10 |
| AlmaLinux:8 | kernel-abi-stablelists | before 4.18.0-553.60.1.el8_10 | 4.18.0-553.60.1.el8_10 |
| AlmaLinux:8 | kernel-core | before 4.18.0-553.60.1.el8_10 | 4.18.0-553.60.1.el8_10 |
| AlmaLinux:8 | kernel-cross-headers | before 4.18.0-553.60.1.el8_10 | 4.18.0-553.60.1.el8_10 |
| AlmaLinux:8 | kernel-debug | before 4.18.0-553.60.1.el8_10 | 4.18.0-553.60.1.el8_10 |
| AlmaLinux:8 | kernel-debug-core | before 4.18.0-553.60.1.el8_10 | 4.18.0-553.60.1.el8_10 |
| AlmaLinux:8 | kernel-debug-devel | before 4.18.0-553.60.1.el8_10 | 4.18.0-553.60.1.el8_10 |
| AlmaLinux:8 | kernel-debug-modules | before 4.18.0-553.60.1.el8_10 | 4.18.0-553.60.1.el8_10 |
| AlmaLinux:8 | kernel-debug-modules-extra | before 4.18.0-553.60.1.el8_10 | 4.18.0-553.60.1.el8_10 |
| AlmaLinux:8 | kernel-devel | before 4.18.0-553.60.1.el8_10 | 4.18.0-553.60.1.el8_10 |
| AlmaLinux:8 | kernel-doc | before 4.18.0-553.60.1.el8_10 | 4.18.0-553.60.1.el8_10 |
| AlmaLinux:8 | kernel-headers | before 4.18.0-553.60.1.el8_10 | 4.18.0-553.60.1.el8_10 |
| AlmaLinux:8 | kernel-modules | before 4.18.0-553.60.1.el8_10 | 4.18.0-553.60.1.el8_10 |
| AlmaLinux:8 | kernel-modules-extra | before 4.18.0-553.60.1.el8_10 | 4.18.0-553.60.1.el8_10 |
| AlmaLinux:8 | kernel-rt | before 4.18.0-553.60.1.rt7.401.el8_10 | 4.18.0-553.60.1.rt7.401.el8_10 |
| AlmaLinux:8 | kernel-rt-core | before 4.18.0-553.60.1.rt7.401.el8_10 | 4.18.0-553.60.1.rt7.401.el8_10 |
| AlmaLinux:8 | kernel-rt-debug | before 4.18.0-553.60.1.rt7.401.el8_10 | 4.18.0-553.60.1.rt7.401.el8_10 |
| AlmaLinux:8 | kernel-rt-debug-core | before 4.18.0-553.60.1.rt7.401.el8_10 | 4.18.0-553.60.1.rt7.401.el8_10 |
| AlmaLinux:8 | kernel-rt-debug-devel | before 4.18.0-553.60.1.rt7.401.el8_10 | 4.18.0-553.60.1.rt7.401.el8_10 |
| AlmaLinux:8 | kernel-rt-debug-modules | before 4.18.0-553.60.1.rt7.401.el8_10 | 4.18.0-553.60.1.rt7.401.el8_10 |
| AlmaLinux:8 | kernel-rt-debug-modules-extra | before 4.18.0-553.60.1.rt7.401.el8_10 | 4.18.0-553.60.1.rt7.401.el8_10 |
| AlmaLinux:8 | kernel-rt-devel | before 4.18.0-553.60.1.rt7.401.el8_10 | 4.18.0-553.60.1.rt7.401.el8_10 |
| AlmaLinux:8 | kernel-rt-modules | before 4.18.0-553.60.1.rt7.401.el8_10 | 4.18.0-553.60.1.rt7.401.el8_10 |
+96
Same product
linux: all recordsOther highest-scoring records for the same primary product.
- CVE-2026-31431crypto: algif_aead - Revert to operating out-of-placeKEV90Now
- CVE-2022-0847A flaw was found in the way the "flags" member of the new pipe buffer structure was lacking proper initialization in copy_page_to_iter_pipe KEV89Now
- CVE-2021-22555Heap Out-Of-Bounds Write in Netfilter IP6T_SO_SET_REPLACEKEV85Now
Published before and after this one in the same product
- ← EarlierCVE-2022-49108Feb 26, 2025 · clk: mediatek: Fix memory leaks on probe22Monitor
- ← EarlierCVE-2022-49109Feb 26, 2025 · ceph: fix inode reference leakage in ceph_get_snapdir()22Monitor
- Later →CVE-2022-49112Feb 26, 2025 · mt76: fix monitor mode crash with sdio driver22Monitor
Remediation
Which version to upgrade to
Fix versions compiled from the vendor, package registries and Microsoft. Verify the vendor's note before upgrading.
| Product / package | Fixed version | Source |
|---|---|---|
| Linux Linux | 2cc803804ec9a296b3156855d6c8c4ca1c6b84be | Vendor (CNA) |
| Linux Linux | 3803d896ddd97c7c16689a5381c0960040727647 | Vendor (CNA) |
| Linux Linux | 4da302b90b96c309987eb9b37c8547f939f042d2 | Vendor (CNA) |
| Linux Linux | 643a6c26bd32e339d00ad97b8822b6db009e803c | Vendor (CNA) |
| Linux Linux | 684e505406abaeabe0058e9776f9210bf2747953 | Vendor (CNA) |
| Linux Linux | b3c2ea1fd444b3bb7b82bfd2c3a45418f85c2502 | Vendor (CNA) |
| Linux Linux | c41de54b0a963e59e4dd04c029a4a6d73f45ef9c | Vendor (CNA) |
| Linux Linux | d404765dffdbd8dcd14758695d0c96c52fb2e624 | Vendor (CNA) |
| Linux Linux | f63d24baff787e13b723d86fe036f84bdbc35045 | Vendor (CNA) |
| almalinux:bpftool | 4.18.0-553.60.1.el8_10 · AlmaLinux:8 | Package registry (OSV) |
| almalinux:kernel | 4.18.0-553.60.1.el8_10 · AlmaLinux:8 | Package registry (OSV) |
| almalinux:kernel-abi-stablelists | 4.18.0-553.60.1.el8_10 · AlmaLinux:8 | Package registry (OSV) |
| almalinux:kernel-core | 4.18.0-553.60.1.el8_10 · AlmaLinux:8 | Package registry (OSV) |
| almalinux:kernel-cross-headers | 4.18.0-553.60.1.el8_10 · AlmaLinux:8 | Package registry (OSV) |
| almalinux:kernel-debug | 4.18.0-553.60.1.el8_10 · AlmaLinux:8 | Package registry (OSV) |
| almalinux:kernel-debug-core | 4.18.0-553.60.1.el8_10 · AlmaLinux:8 | Package registry (OSV) |
| almalinux:kernel-debug-devel | 4.18.0-553.60.1.el8_10 · AlmaLinux:8 | Package registry (OSV) |
| almalinux:kernel-debug-modules | 4.18.0-553.60.1.el8_10 · AlmaLinux:8 | Package registry (OSV) |
| almalinux:kernel-debug-modules-extra | 4.18.0-553.60.1.el8_10 · AlmaLinux:8 | Package registry (OSV) |
| almalinux:kernel-devel | 4.18.0-553.60.1.el8_10 · AlmaLinux:8 | Package registry (OSV) |
| almalinux:kernel-doc | 4.18.0-553.60.1.el8_10 · AlmaLinux:8 | Package registry (OSV) |
| debian:linux | 5.17.3-1 · Debian:12 | Package registry (OSV) |
| red hat:bpftool | 0:4.18.0-305.161.1.el8_4 · Red Hat:rhel_aus:8.4::baseos | Package registry (OSV) |
| red hat:bpftool-debuginfo | 0:4.18.0-305.161.1.el8_4 · Red Hat:rhel_aus:8.4::baseos | Package registry (OSV) |
| red hat:kernel | 0:4.18.0-305.161.1.el8_4 · Red Hat:rhel_aus:8.4::baseos | Package registry (OSV) |
| red hat:kernel-abi-stablelists | 0:4.18.0-305.161.1.el8_4 · Red Hat:rhel_aus:8.4::baseos | Package registry (OSV) |
| red hat:kernel-core | 0:4.18.0-305.161.1.el8_4 · Red Hat:rhel_aus:8.4::baseos | Package registry (OSV) |
| red hat:kernel-debug | 0:4.18.0-305.161.1.el8_4 · Red Hat:rhel_aus:8.4::baseos | Package registry (OSV) |
| red hat:kernel-debug-core | 0:4.18.0-305.161.1.el8_4 · Red Hat:rhel_aus:8.4::baseos | Package registry (OSV) |
| red hat:kernel-debug-debuginfo | 0:4.18.0-305.161.1.el8_4 · Red Hat:rhel_aus:8.4::baseos | Package registry (OSV) |
+16
Exploit status
No known public exploit
No public exploit has been observed yet. That doesn't mean you're safe, only that the bar is a little higher.
Research context
For pentesters and researchers: attack profile, score disagreement, timeline, patch commits, credits, variant and chain candidates, bug bounty scope. All derived from existing data; no exploit code.
Timeline
From publication to today: proof of concept, Metasploit module, CISA KEV and fix record. Dates are as reported by the sources.
No dated events beyond publication.
No history yet (it accumulates with the daily EPSS job).
Patch and commit links
Commit, PR and diff links among the references. A starting point for patch-diffing and variant hunting; fixes, not exploits.
No commit or PR link among the references.
Credits
All researchersFinders, reporters and analysts named in the CNA record. Click a name for that researcher’s other records.
No credits in the CNA record.
Variant candidates
Same product, same weakness class, within 18 months. If the patch missed the root cause, the sibling bug is here.
No nightly-computed relations.
Chain candidates
An authentication bypass and a privilege-requiring bug in the same product, published close together: combined they may become an unauthenticated path.
—
Bug bounty scope
No known public program.
Source: bounty-targets-data (public HackerOne, Bugcrowd, Intigriti, YesWeHack listings).
Technical details
Attack conditions
- Someone on the same network segment can trigger it.
- No account or password is required.
- No user action is required.
- No special conditions are required; it is repeatable.
If successful
- Confidentiality
- high · data can be read
- Integrity
- high · data or configuration can be modified
- Availability
- high · the service can be disrupted
- Attack vector
- Adjacent
- Attack complexity
- Low
- Privileges required
- None
- User interaction
- None
- Scope
- Unchanged
- Confidentiality impact
- High
- Integrity impact
- High
- Availability impact
- High
Weakness class (CWE)
CWE-416 · Use After FreeCVSS vector
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
nvd-secondary
Root cause
After a memory region is freed, another reference pointing to it is still used. By then, the same region may have been allocated for different data.
The bug in code
The whole CWE-416 classA representative example of this vulnerability class. Not the vendor's source code; it shows the faulty pattern and its fix.
Vulnerable
free(dev->buf);
/* ... another thread is still running ... */
process(dev->buf);Fixed
lock(&dev->lock);
free(dev->buf);
dev->buf = NULL;
unlock(&dev->lock);Attack context
MITRE CAPEC attack patterns and ATT&CK techniques for this weakness class (CWE). A starting point for detection rules and threat hunting.
MITRE has no CAPEC/ATT&CK mapping for this CWE.
Change log
- Fix✗ → ✓
For records you follow, these changes also arrive as notifications. →
References
Show all references (8 more)Show less
- git.kernel.org/stable/c/3803d896ddd97c7c16689a5381c0960040727647
- git.kernel.org/stable/c/4da302b90b96c309987eb9b37c8547f939f042d2
- git.kernel.org/stable/c/643a6c26bd32e339d00ad97b8822b6db009e803c
- git.kernel.org/stable/c/684e505406abaeabe0058e9776f9210bf2747953
- git.kernel.org/stable/c/b3c2ea1fd444b3bb7b82bfd2c3a45418f85c2502
- git.kernel.org/stable/c/c41de54b0a963e59e4dd04c029a4a6d73f45ef9c
- git.kernel.org/stable/c/d404765dffdbd8dcd14758695d0c96c52fb2e624
- git.kernel.org/stable/c/f63d24baff787e13b723d86fe036f84bdbc35045
Vendor advisories and official records. Exploit/PoC links are deliberately left out.