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