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 kernel-rtUpgrade kernelNo solution exists | May 15, 2025 | May 14, 2024 |
| Suse | — | Upgrade dtb-nvidiaUpgrade kernel-rt-optionalUpgrade kernel-default-baseUpgrade dtb-amdUpgrade kernel-debugUpgrade kernel-rt_debugUpgrade dtb-sprdUpgrade kernel-64kb-develUpgrade kernel-azureUpgrade ocfs2-kmp-defaultUpgrade cluster-md-kmp-rtUpgrade kernel-docsUpgrade kernel-docs-htmlUpgrade kernel-rt-extraUpgrade reiserfs-kmp-64kbUpgrade kselftests-kmp-defaultUpgrade dtb-appleUpgrade kernel-default-livepatch-develUpgrade dtb-alteraUpgrade kernel-devel-rtUpgrade kselftests-kmp-azureUpgrade gfs2-kmp-defaultUpgrade kernel-source-rtUpgrade gfs2-kmp-azureUpgrade dtb-marvellUpgrade kernel-defaultUpgrade dtb-hisiliconUpgrade ocfs2-kmp-azureUpgrade kernel-rt_debug-develUpgrade dlm-kmp-rtUpgrade kernel-source-vanillaUpgrade kernel-preempt-develUpgrade kernel-debug-vdsoUpgrade kernel-debug-develUpgrade reiserfs-kmp-defaultUpgrade kernel-develUpgrade dtb-socionextUpgrade kernel-rt_debug-livepatch-develUpgrade kselftests-kmp-rtUpgrade kernel-rt-develUpgrade dtb-caviumUpgrade dtb-rockchipUpgrade cluster-md-kmp-64kbUpgrade kernel-azure-extraUpgrade kernel-rt-livepatchUpgrade kernel-64kb-extraUpgrade kernel-obs-buildUpgrade dlm-kmp-defaultUpgrade kernel-default-optionalUpgrade dtb-allwinnerUpgrade reiserfs-kmp-rtUpgrade dtb-xilinxUpgrade dtb-renesasUpgrade dtb-broadcomUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-rtUpgrade kernel-kvmsmall-vdsoUpgrade kernel-zfcpdumpUpgrade kernel-devel-azureUpgrade kernel-default-manUpgrade kernel-64kbUpgrade dlm-kmp-64kbUpgrade kernel-symsUpgrade kernel-default-vdsoUpgrade kernel-default-develUpgrade kernel-obs-qaUpgrade kernel-kvmsmallUpgrade kernel-azure-baseUpgrade kernel-syms-azureUpgrade kernel-debug-livepatch-develUpgrade kernel-64kb-optionalUpgrade cluster-md-kmp-defaultUpgrade ocfs2-kmp-64kbUpgrade kernel-sourceUpgrade kernel-rt-livepatch-develUpgrade kernel-azure-vdsoUpgrade cluster-md-kmp-azureUpgrade dtb-amazonUpgrade kselftests-kmp-64kbUpgrade gfs2-kmp-64kbUpgrade kernel-rt-vdsoUpgrade kernel-rt_debug-vdsoUpgrade ocfs2-kmp-rtUpgrade kernel-preemptUpgrade kernel-macrosUpgrade kernel-default-livepatchUpgrade kernel-azure-optionalUpgrade dtb-amlogicUpgrade kernel-source-azureUpgrade kernel-default-extraUpgrade kernel-azure-develUpgrade gfs2-kmp-rtUpgrade dtb-armUpgrade dtb-apmUpgrade kernel-kvmsmall-develUpgrade kernel-64kb-livepatch-develUpgrade dlm-kmp-azureUpgrade reiserfs-kmp-azureUpgrade kernel-syms-rtUpgrade dtb-exynosUpgrade dtb-lgUpgrade dtb-qcomUpgrade dtb-mediatekUpgrade dtb-freescaleUpgrade kernel-default-base-rebuildUpgrade kernel-azure-livepatch-devel | Jun 12, 2024 | May 14, 2024 |
| Ubuntu | — | Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-azure-cvmUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-5.15.0-1070-azureUpgrade linux-image-raspiUpgrade linux-image-6.8.0-1010-oracle-64kUpgrade linux-image-5.15.0-118-genericUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-lowlatency-64kUpgrade linux-image-aws-hweUpgrade linux-image-awsUpgrade linux-image-6.8.0-1009-raspiUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-oracle-lts-18.04Upgrade linux-image-gcp-lts-22.04Upgrade linux-image-5.4.0-1135-azureUpgrade linux-image-azure-fdeUpgrade linux-image-5.4.0-1134-gcpUpgrade linux-image-5.4.0-1114-raspiUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-5.4.0-192-genericUpgrade linux-image-6.8.0-1011-nvidiaUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-5.4.0-192-lowlatencyUpgrade linux-image-ibm-lts-20.04Upgrade linux-image-nvidia-6.8Upgrade linux-image-6.8.0-1012-gcpUpgrade linux-image-5.15.0-1062-nvidia-lowlatencyUpgrade linux-image-5.4.0-1042-iotUpgrade linux-image-5.4.0-1129-oracleUpgrade linux-image-5.15.0-1050-gkeopUpgrade linux-image-oemUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-5.4.0-1077-ibmUpgrade linux-image-6.8.0-40-generic-64kUpgrade linux-image-5.15.0-1064-kvmUpgrade linux-image-5.4.0-1049-xilinx-zynqmpUpgrade linux-image-azureUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-4.15.0-1156-kvmUpgrade linux-image-aws-lts-18.04Upgrade linux-image-virtual-hwe-20.04Upgrade linux-image-6.8.0-1012-azureUpgrade linux-image-lowlatency-hwe-16.04Upgrade linux-image-6.8.0-1011-nvidia-64kUpgrade linux-image-5.15.0-118-generic-lpaeUpgrade linux-image-raspi-nolpaeUpgrade linux-image-6.8.0-1013-awsUpgrade linux-image-5.15.0-1062-nvidiaUpgrade linux-image-aws-lts-20.04Upgrade linux-image-5.4.0-192-generic-lpaeUpgrade linux-image-oracle-lts-20.04Upgrade linux-image-generic-lpaeUpgrade linux-image-5.15.0-1064-gkeUpgrade linux-image-6.8.0-1012-azure-fdeUpgrade linux-image-gkeop-5.15Upgrade linux-image-virtual-hwe-18.04Upgrade linux-image-6.8.0-40-lowlatencyUpgrade linux-image-6.8.0-40-genericUpgrade linux-image-5.15.0-118-lowlatencyUpgrade linux-image-6.8.0-1010-oemUpgrade linux-image-4.15.0-1166-gcpUpgrade linux-image-intelUpgrade linux-image-5.15.0-1067-awsUpgrade linux-image-5.4.0-1097-gkeopUpgrade linux-image-ibm-classicUpgrade linux-image-gcpUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-kvmUpgrade linux-image-oracleUpgrade linux-image-generic-hwe-16.04Upgrade linux-image-ibmUpgrade linux-image-5.15.0-1060-ibmUpgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-oem-24.04aUpgrade linux-image-genericUpgrade linux-image-virtual-hwe-16.04Upgrade linux-image-gkeop-5.4Upgrade linux-image-nvidia-64kUpgrade linux-image-5.4.0-1130-awsUpgrade linux-image-4.15.0-229-genericUpgrade linux-image-gcp-lts-18.04Upgrade linux-image-4.15.0-1135-oracleUpgrade linux-image-5.15.0-118-generic-64kUpgrade linux-image-5.15.0-118-lowlatency-64kUpgrade linux-image-5.15.0-1062-intel-iotgUpgrade linux-image-nvidiaUpgrade linux-image-azure-lts-18.04Upgrade linux-image-generic-hwe-18.04Upgrade linux-image-azure-lts-20.04Upgrade linux-image-bluefieldUpgrade linux-image-oem-osp1Upgrade linux-image-lowlatencyUpgrade linux-image-4.15.0-1173-awsUpgrade linux-image-5.15.0-1060-raspiUpgrade linux-image-virtualUpgrade linux-image-6.8.0-40-lowlatency-64kUpgrade linux-image-5.4.0-1090-bluefieldUpgrade linux-image-gkeopUpgrade linux-image-5.15.0-1066-gcpUpgrade linux-image-5.15.0-1070-azure-fdeUpgrade linux-image-gcp-lts-20.04Upgrade linux-image-oem-20.04dUpgrade linux-image-raspi-hwe-18.04Upgrade linux-image-gkeUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-gke-5.15Upgrade linux-image-oem-20.04bUpgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-oracle-lts-22.04Upgrade linux-image-6.8.0-1010-ibmUpgrade linux-image-azure-lts-22.04Upgrade linux-image-6.8.0-1010-oracleUpgrade linux-image-oracle-64kUpgrade linux-image-5.4.0-1118-kvmUpgrade linux-image-4.15.0-229-lowlatencyUpgrade linux-image-oem-20.04Upgrade linux-image-oem-20.04cUpgrade linux-image-4.15.0-1181-azureUpgrade linux-image-6.8.0-1008-gkeUpgrade linux-image-oem-24.04Upgrade linux-image-intel-iotgUpgrade linux-image-raspi2Upgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-generic-64kUpgrade linux-image-5.15.0-1065-oracleUpgrade linux-image-5.15.0-1035-xilinx-zynqmpUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-aws-lts-22.04Upgrade linux-image-6.8.0-1011-nvidia-lowlatencyUpgrade linux-image-6.8.0-1011-nvidia-lowlatency-64k | 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