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