In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: Fix use-after-free bugs caused by sco_sock_timeout
When the sco connection is established and then, the sco socket is releasing, timeout_work will be scheduled to judge whether the sco disconnection is timeout. The sock will be deallocated later, but it is dereferenced again in sco_sock_timeout. As a result, the use-after-free bugs will happen. The root cause is shown below:
Cleanup Thread | Worker Thread sco_sock_release | sco_sock_close | __sco_sock_close | sco_sock_set_timer | schedule_delayed_work | sco_sock_kill | (wait a time) sock_put(sk) //FREE | sco_sock_timeout | sock_hold(sk) //USE
The KASAN report triggered by POC is shown below:
[ 95.890016] ================================================================== [ 95.890496] BUG: KASAN: slab-use-after-free in sco_sock_timeout+0x5e/0x1c0 [ 95.890755] Write of size 4 at addr ffff88800c388080 by task kworker/0:0/7 ... [ 95.890755] Workqueue: events sco_sock_timeout [ 95.890755] Call Trace: [ 95.890755] <TASK> [ 95.890755] dump_stack_lvl+0x45/0x110 [ 95.890755] print_address_description+0x78/0x390 [ 95.890755] print_report+0x11b/0x250 [ 95.890755] ? __virt_addr_valid+0xbe/0xf0 [ 95.890755] ? sco_sock_timeout+0x5e/0x1c0 [ 95.890755] kasan_report+0x139/0x170 [ 95.890755] ? update_load_avg+0xe5/0x9f0 [ 95.890755] ? sco_sock_timeout+0x5e/0x1c0 [ 95.890755] kasan_check_range+0x2c3/0x2e0 [ 95.890755] sco_sock_timeout+0x5e/0x1c0 [ 95.890755] process_one_work+0x561/0xc50 [ 95.890755] worker_thread+0xab2/0x13c0 [ 95.890755] ? pr_cont_work+0x490/0x490 [ 95.890755] kthread+0x279/0x300 [ 95.890755] ? pr_cont_work+0x490/0x490 [ 95.890755] ? kthread_blkcg+0xa0/0xa0 [ 95.890755] ret_from_fork+0x34/0x60 [ 95.890755] ? kthread_blkcg+0xa0/0xa0 [ 95.890755] ret_from_fork_asm+0x11/0x20 [ 95.890755] </TASK> [ 95.890755] [ 95.890755] Allocated by task 506: [ 95.890755] kasan_save_track+0x3f/0x70 [ 95.890755] __kasan_kmalloc+0x86/0x90 [ 95.890755] __kmalloc+0x17f/0x360 [ 95.890755] sk_prot_alloc+0xe1/0x1a0 [ 95.890755] sk_alloc+0x31/0x4e0 [ 95.890755] bt_sock_alloc+0x2b/0x2a0 [ 95.890755] sco_sock_create+0xad/0x320 [ 95.890755] bt_sock_create+0x145/0x320 [ 95.890755] __sock_create+0x2e1/0x650 [ 95.890755] __sys_socket+0xd0/0x280 [ 95.890755] __x64_sys_socket+0x75/0x80 [ 95.890755] do_syscall_64+0xc4/0x1b0 [ 95.890755] entry_SYSCALL_64_after_hwframe+0x67/0x6f [ 95.890755] [ 95.890755] Freed by task 506: [ 95.890755] kasan_save_track+0x3f/0x70 [ 95.890755] kasan_save_free_info+0x40/0x50 [ 95.890755] poison_slab_object+0x118/0x180 [ 95.890755] __kasan_slab_free+0x12/0x30 [ 95.890755] kfree+0xb2/0x240 [ 95.890755] __sk_destruct+0x317/0x410 [ 95.890755] sco_sock_release+0x232/0x280 [ 95.890755] sock_close+0xb2/0x210 [ 95.890755] __fput+0x37f/0x770 [ 95.890755] task_work_run+0x1ae/0x210 [ 95.890755] get_signal+0xe17/0xf70 [ 95.890755] arch_do_signal_or_restart+0x3f/0x520 [ 95.890755] syscall_exit_to_user_mode+0x55/0x120 [ 95.890755] do_syscall_64+0xd1/0x1b0 [ 95.890755] entry_SYSCALL_64_after_hwframe+0x67/0x6f [ 95.890755] [ 95.890755] The buggy address belongs to the object at ffff88800c388000 [ 95.890755] which belongs to the cache kmalloc-1k of size 1024 [ 95.890755] The buggy address is located 128 bytes inside of [ 95.890755] freed 1024-byte region [ffff88800c388000, ffff88800c388400) [ 95.890755] [ 95.890755] The buggy address belongs to the physical page: [ 95.890755] page: refcount:1 mapcount:0 mapping:0000000000000000 index:0xffff88800c38a800 pfn:0xc388 [ 95.890755] head: order:3 entire_mapcount:0 nr_pages_mapped:0 pincount:0 [ 95.890755] ano ---truncated---
CVSS Details
- CVSS 3.1 Base Score: 8
- CVSS 3.1 Vector: (CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linux | Jun 4, 2024 | May 14, 2024 |
| Redhat_linux | — | Upgrade kernelUpgrade kernel-rtNo solution exists | May 15, 2025 | May 14, 2024 |
| Suse | — | Upgrade kernel-kvmsmall-livepatch-develUpgrade dtb-freescaleUpgrade kernel-default-develUpgrade kernel-default-vdsoUpgrade kernel-rt_debug-vdsoUpgrade dlm-kmp-64kbUpgrade kernel-symsUpgrade kernel-kvmsmall-vdsoUpgrade kernel-rtUpgrade kselftests-kmp-64kbUpgrade dtb-amazonUpgrade kernel-azure-vdsoUpgrade dtb-armUpgrade kernel-default-extraUpgrade cluster-md-kmp-azureUpgrade dtb-apmUpgrade gfs2-kmp-rtUpgrade kernel-obs-qaUpgrade kernel-rt-vdsoUpgrade kernel-kvmsmallUpgrade kernel-source-azureUpgrade kernel-syms-rtUpgrade kernel-azure-develUpgrade reiserfs-kmp-azureUpgrade dtb-broadcomUpgrade gfs2-kmp-64kbUpgrade kernel-kvmsmall-develUpgrade kernel-azure-optionalUpgrade kernel-64kb-livepatch-develUpgrade kernel-default-livepatchUpgrade kernel-macrosUpgrade kernel-preemptUpgrade dlm-kmp-azureUpgrade dtb-amlogicUpgrade cluster-md-kmp-defaultUpgrade kernel-64kb-optionalUpgrade kernel-rt-livepatch-develUpgrade kernel-sourceUpgrade kernel-debug-livepatch-develUpgrade ocfs2-kmp-64kbUpgrade kernel-syms-azureUpgrade kernel-azure-baseUpgrade ocfs2-kmp-rtUpgrade kernel-default-manUpgrade kernel-zfcpdumpUpgrade dtb-lgUpgrade dtb-mediatekUpgrade dtb-qcomUpgrade dtb-exynosUpgrade kernel-default-base-rebuildUpgrade kernel-devel-azureUpgrade kernel-azure-livepatch-develUpgrade kernel-64kbUpgrade kernel-obs-buildUpgrade dtb-appleUpgrade kselftests-kmp-rtUpgrade dtb-socionextUpgrade reiserfs-kmp-defaultUpgrade dtb-rockchipUpgrade dtb-caviumUpgrade cluster-md-kmp-64kbUpgrade dtb-xilinxUpgrade dtb-hisiliconUpgrade ocfs2-kmp-azureUpgrade reiserfs-kmp-rtUpgrade kernel-source-rtUpgrade kernel-rt-livepatchUpgrade cluster-md-kmp-rtUpgrade kselftests-kmp-azureUpgrade dtb-alteraUpgrade dtb-marvellUpgrade kernel-default-baseUpgrade kernel-debugUpgrade kernel-azureUpgrade kernel-64kb-develUpgrade dtb-sprdUpgrade dtb-amdUpgrade ocfs2-kmp-defaultUpgrade kernel-rt_debugUpgrade kernel-rt-optionalUpgrade kernel-default-livepatch-develUpgrade dlm-kmp-rtUpgrade kernel-source-vanillaUpgrade kernel-preempt-develUpgrade dtb-nvidiaUpgrade kselftests-kmp-defaultUpgrade kernel-defaultUpgrade kernel-azure-extraUpgrade reiserfs-kmp-64kbUpgrade kernel-rt_debug-develUpgrade gfs2-kmp-defaultUpgrade kernel-devel-rtUpgrade kernel-debug-develUpgrade kernel-rt-develUpgrade kernel-develUpgrade kernel-debug-vdsoUpgrade kernel-default-optionalUpgrade dtb-renesasUpgrade dtb-allwinnerUpgrade kernel-rt-extraUpgrade kernel-docsUpgrade kernel-64kb-extraUpgrade gfs2-kmp-azureUpgrade dlm-kmp-defaultUpgrade kernel-docs-htmlUpgrade kernel-rt_debug-livepatch-devel | Jun 12, 2024 | May 14, 2024 |
| Ubuntu | — | Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-6.8.0-1009-raspiUpgrade linux-image-6.8.0-40-lowlatencyUpgrade linux-image-5.4.0-1114-raspiUpgrade linux-image-6.8.0-1012-azureUpgrade linux-image-gkeop-5.15Upgrade linux-image-aws-lts-18.04Upgrade linux-image-5.15.0-1062-nvidiaUpgrade linux-image-5.15.0-118-generic-lpaeUpgrade linux-image-lowlatency-64kUpgrade linux-image-4.15.0-1156-kvmUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-azure-cvmUpgrade linux-image-aws-lts-20.04Upgrade linux-image-5.4.0-192-lowlatencyUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-virtual-hwe-20.04Upgrade linux-image-5.4.0-1042-iotUpgrade linux-image-virtual-hwe-18.04Upgrade linux-image-lowlatency-hwe-16.04Upgrade linux-image-6.8.0-1013-awsUpgrade linux-image-5.4.0-192-genericUpgrade linux-image-raspiUpgrade linux-image-oracle-lts-20.04Upgrade linux-image-ibm-lts-20.04Upgrade linux-image-raspi-nolpaeUpgrade linux-image-5.15.0-1070-azureUpgrade linux-image-6.8.0-1012-azure-fdeUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-5.4.0-1129-oracleUpgrade linux-image-nvidia-6.8Upgrade linux-image-5.15.0-1062-nvidia-lowlatencyUpgrade linux-image-oracle-lts-18.04Upgrade linux-image-6.8.0-1012-gcpUpgrade linux-image-azure-fdeUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-5.4.0-1135-azureUpgrade linux-image-oemUpgrade linux-image-6.8.0-1011-nvidia-64kUpgrade linux-image-5.4.0-1134-gcpUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-6.8.0-1011-nvidiaUpgrade linux-image-5.4.0-192-generic-lpaeUpgrade linux-image-azureUpgrade linux-image-6.8.0-1010-oracle-64kUpgrade linux-image-5.15.0-118-genericUpgrade linux-image-aws-hweUpgrade linux-image-generic-lpaeUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-awsUpgrade linux-image-5.15.0-1064-gkeUpgrade linux-image-5.15.0-1050-gkeopUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-5.4.0-1049-xilinx-zynqmpUpgrade linux-image-5.15.0-1064-kvmUpgrade linux-image-6.8.0-40-generic-64kUpgrade linux-image-5.4.0-1077-ibmUpgrade linux-image-6.8.0-40-genericUpgrade linux-image-gke-5.15Upgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-5.15.0-118-lowlatencyUpgrade linux-image-generic-hwe-16.04Upgrade linux-image-kvmUpgrade linux-image-6.8.0-1010-oemUpgrade linux-image-oracleUpgrade linux-image-4.15.0-1166-gcpUpgrade linux-image-6.8.0-1010-ibmUpgrade linux-image-oem-osp1Upgrade linux-image-5.15.0-1067-awsUpgrade linux-image-lowlatencyUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-6.8.0-1011-nvidia-lowlatencyUpgrade linux-image-oem-24.04Upgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-5.4.0-1130-awsUpgrade linux-image-azure-lts-18.04Upgrade linux-image-4.15.0-1173-awsUpgrade linux-image-aws-lts-22.04Upgrade linux-image-raspi2Upgrade linux-image-5.4.0-1097-gkeopUpgrade linux-image-6.8.0-1011-nvidia-lowlatency-64kUpgrade linux-image-5.15.0-1065-oracleUpgrade linux-image-ibm-classicUpgrade linux-image-generic-64kUpgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-5.4.0-1090-bluefieldUpgrade linux-image-gkeopUpgrade linux-image-generic-hwe-18.04Upgrade linux-image-4.15.0-1181-azureUpgrade linux-image-5.15.0-1066-gcpUpgrade linux-image-bluefieldUpgrade linux-image-oem-20.04dUpgrade linux-image-oracle-64kUpgrade linux-image-5.15.0-1062-intel-iotgUpgrade linux-image-gkeop-5.4Upgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-6.8.0-1008-gkeUpgrade linux-image-oem-20.04cUpgrade linux-image-oem-20.04Upgrade linux-image-5.4.0-1118-kvmUpgrade linux-image-4.15.0-229-lowlatencyUpgrade linux-image-virtualUpgrade linux-image-6.8.0-1010-oracleUpgrade linux-image-5.15.0-1060-raspiUpgrade linux-image-azure-lts-22.04Upgrade linux-image-ibmUpgrade linux-image-5.15.0-1060-ibmUpgrade linux-image-intelUpgrade linux-image-azure-lts-20.04Upgrade linux-image-nvidiaUpgrade linux-image-genericUpgrade linux-image-oem-24.04aUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-5.15.0-1070-azure-fdeUpgrade linux-image-raspi-hwe-18.04Upgrade linux-image-gkeUpgrade linux-image-virtual-hwe-16.04Upgrade linux-image-gcp-lts-20.04Upgrade linux-image-6.8.0-40-lowlatency-64kUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-5.15.0-118-lowlatency-64kUpgrade linux-image-oem-20.04bUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-5.15.0-118-generic-64kUpgrade linux-image-5.15.0-1035-xilinx-zynqmpUpgrade linux-image-intel-iotgUpgrade linux-image-4.15.0-229-genericUpgrade linux-image-gcp-lts-18.04Upgrade linux-image-nvidia-64kUpgrade linux-image-4.15.0-1135-oracleUpgrade linux-image-gcp | Aug 9, 2024 | May 14, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jan 20, 2025 | May 13, 2024 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub