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