CVE-2022-49111: Bluetooth: Fix use after free in hci_send_acl

Published Feb 26, 2025
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

Bluetooth: Fix use after free in hcisendacl

This fixes the following trace caused by receiving HCIEVDISCONNPHYLINKCOMPLETE which does call hciconndel without first checking if conn->type is in fact AMPLINK and in case it is do properly cleanup upper layers with hcidisconncfm:

================================================================== BUG: KASAN: use-after-free in hcisendacl+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> dumpstacklvl+0x45/0x59 printaddressdescription.constprop.0+0x1f/0x150 kasanreport.cold+0x7f/0x11b hcisendacl+0xaba/0xc50 l2capdosend+0x23f/0x3d0 l2capchansend+0xc06/0x2cc0 l2capsocksendmsg+0x201/0x2b0 socksendmsg+0xdc/0x110 sockwriteiter+0x20f/0x370 doiterreadvwritev+0x343/0x690 doiterwrite+0x132/0x640 vfswritev+0x198/0x570 dowritev+0x202/0x280 dosyscall64+0x38/0x90 entrySYSCALL64afterhwframe+0x44/0xae RSP: 002b:00007ffce8a099b8 EFLAGS: 00000246 ORIGRAX: 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: kasansavestack+0x1e/0x40 kasankmalloc+0x81/0xa0 hcichancreate+0x9a/0x2f0 l2capconnadd.part.0+0x1a/0xdc0 l2capconnectcfm+0x236/0x1000 leconncompleteevt+0x15a7/0x1db0 hcileconncompleteevt+0x226/0x2c0 hcilemetaevt+0x247/0x450 hcieventpacket+0x61b/0xe90 hcirxwork+0x4d5/0xc50 processonework+0x8fb/0x15a0 workerthread+0x576/0x1240 kthread+0x29d/0x340 retfromfork+0x1f/0x30

Freed by task 45: kasansavestack+0x1e/0x40 kasansettrack+0x21/0x30 kasansetfreeinfo+0x20/0x30 kasanslabfree+0xfb/0x130 kfree+0xac/0x350 hciconncleanup+0x101/0x6a0 hciconndel+0x27e/0x6c0 hcidisconnphylinkcompleteevt+0xe0/0x120 hcieventpacket+0x812/0xe90 hcirxwork+0x4d5/0xc50 processonework+0x8fb/0x15a0 workerthread+0x576/0x1240 kthread+0x29d/0x340 retfromfork+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---

Other sources

In the Linux kernel, the following vulnerability has been resolved:

Bluetooth: Fix use after free in hcisendacl

This fixes the following trace caused by receiving HCIEVDISCONNPHYLINKCOMPLETE which does call hciconndel without first checking if conn->type is in fact AMPLINK and in case it is do properly cleanup upper layers with hcidisconncfm:

================================================================== BUG: KASAN: use-after-free in hcisendacl+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> dumpstacklvl+0x45/0x59 printaddressdescription.constprop.0+0x1f/0x150 kasanreport.cold+0x7f/0x11b hcisendacl+0xaba/0xc50 l2capdosend+0x23f/0x3d0 l2capchansend+0xc06/0x2cc0 l2capsocksendmsg+0x201/0x2b0 socksendmsg+0xdc/0x110 sockwriteiter+0x20f/0x370 doiterreadvwritev+0x343/0x690 doiterwrite+0x132/0x640 vfswritev+0x198/0x570 dowritev+0x202/0x280 dosyscall64+0x38/0x90 entrySYSCALL64afterhwframe+0x44/0xae RSP: 002b:00007ffce8a099b8 EFLAGS: 00000246 ORIGRAX: 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: kasansavestack+0x1e/0x40 kasankmalloc+0x81/0xa0 hcichancreate+0x9a/0x2f0 l2capconnadd.part.0+0x1a/0xdc0 l2capconnectcfm+0x236/0x1000 leconncompleteevt+0x15a7/0x1db0 hcileconncompleteevt+0x226/0x2c0 hcilemetaevt+0x247/0x450 hcieventpacket+0x61b/0xe90 hcirxwork+0x4d5/0xc50 processonework+0x8fb/0x15a0 workerthread+0x576/0x1240 kthread+0x29d/0x340 retfromfork+0x1f/0x30

Freed by task 45: kasansavestack+0x1e/0x40 kasansettrack+0x21/0x30 kasansetfreeinfo+0x20/0x30 kasanslabfree+0xfb/0x130 kfree+0xac/0x350 hciconncleanup+0x101/0x6a0 hciconndel+0x27e/0x6c0 hcidisconnphylinkcompleteevt+0xe0/0x120 hcieventpacket+0x812/0xe90 hcirxwork+0x4d5/0xc50 processonework+0x8fb/0x15a0 workerthread+0x576/0x1240 kthread+0x29d/0x340 retfromfork+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---

NVD

Affected Software

9 affected components
Linux Linux kernel>=5.17.0-rc5-00006-gda4022eeac1a
Linux Linux kernel<4.9.311
Linux Linux kernel>=4.10<4.14.276
Linux Linux kernel>=4.15<4.19.238
Linux Linux kernel>=4.20<5.4.189
Linux Linux kernel>=5.5<5.10.111
Linux Linux kernel>=5.11<5.15.34
Linux Linux kernel>=5.16<5.16.20
Linux Linux kernel>=5.17<5.17.3

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 5.17.0-rc5-00006-gda4022eeac1a
  2. Configuration

    Apply the kernel Bluetooth fix described in the report: properly cleanup upper layers with hci_disconn_cfm so that the hci_send_acl use-after-free is resolved.

    Linux kernel (Bluetooth) Fix use-after-free in hci_send_acl via proper cleanup in hci_disconn_cfm = applied

Event History

Feb 26, 2025
CVE Published
via MITRE·01:54 AM
Data Sourced
via MITRE·01:54 AM
DescriptionSeverity
Data Sourced
via Red Hat·03:12 AM
DescriptionSeverityAffected Software
Data Sourced
via NVD·07:00 AM
RemedyDescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2022-49111?

CVE-2022-49111 has a severity rating that can range from medium to high, depending on the context of use in affected versions.

2

How do I fix CVE-2022-49111?

To mitigate CVE-2022-49111, ensure that your Linux kernel is updated to a version where this vulnerability has been patched.

3

Which versions of the Linux kernel are affected by CVE-2022-49111?

CVE-2022-49111 impacts various versions of the Linux kernel from 5.17.0-rc5 up to certain versions in the 4.x series.

4

What type of vulnerability is CVE-2022-49111?

CVE-2022-49111 is identified as a use-after-free vulnerability within the Bluetooth functionality of the Linux kernel.

5

Is CVE-2022-49111 related to Bluetooth?

Yes, CVE-2022-49111 specifically pertains to a vulnerability in the Bluetooth subsystem of the Linux kernel.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203