In the Linux kernel, the following vulnerability has been resolved:
cachefiles: fix slab-use-after-free in cachefiles_ondemand_daemon_read()
We got the following issue in a fuzz test of randomly issuing the restore command:
================================================================== BUG: KASAN: slab-use-after-free in cachefiles_ondemand_daemon_read+0xb41/0xb60 Read of size 8 at addr ffff888122e84088 by task ondemand-04-dae/963
CPU: 13 PID: 963 Comm: ondemand-04-dae Not tainted 6.8.0-dirty #564 Call Trace: kasan_report+0x93/0xc0 cachefiles_ondemand_daemon_read+0xb41/0xb60 vfs_read+0x169/0xb50 ksys_read+0xf5/0x1e0
Allocated by task 116: kmem_cache_alloc+0x140/0x3a0 cachefiles_lookup_cookie+0x140/0xcd0 fscache_cookie_state_machine+0x43c/0x1230 [...]
Freed by task 792: kmem_cache_free+0xfe/0x390 cachefiles_put_object+0x241/0x480 fscache_cookie_state_machine+0x5c8/0x1230 [...] ==================================================================
Following is the process that triggers the issue:
mount | daemon_thread1 | daemon_thread2 ------------------------------------------------------------ cachefiles_withdraw_cookie cachefiles_ondemand_clean_object(object) cachefiles_ondemand_send_req REQ_A = kzalloc(sizeof(*req) + data_len) wait_for_completion(&REQ_A->done)
cachefiles_daemon_read cachefiles_ondemand_daemon_read REQ_A = cachefiles_ondemand_select_req msg->object_id = req->object->ondemand->ondemand_id ------ restore ------ cachefiles_ondemand_restore xas_for_each(&xas, req, ULONG_MAX) xas_set_mark(&xas, CACHEFILES_REQ_NEW)
cachefiles_daemon_read cachefiles_ondemand_daemon_read REQ_A = cachefiles_ondemand_select_req copy_to_user(_buffer, msg, n) xa_erase(&cache->reqs, id) complete(&REQ_A->done) ------ close(fd) ------ cachefiles_ondemand_fd_release cachefiles_put_object cachefiles_put_object kmem_cache_free(cachefiles_object_jar, object) REQ_A->object->ondemand->ondemand_id // object UAF !!!
When we see the request within xa_lock, req->object must not have been freed yet, so grab the reference count of object before xa_unlock to avoid the above issue.
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linux-6.1Upgrade linux | Jul 18, 2024 | Jul 12, 2024 |
| Huawei Euleros 2_0_sp12 | — | Upgrade bpftoolUpgrade kernelUpgrade kernel-toolsUpgrade kernel-tools-libsUpgrade python3-perfUpgrade kernel-abi-stablelists | Oct 9, 2024 | Jul 12, 2024 |
| Suse | — | Upgrade gfs2-kmp-defaultUpgrade kernel-azure-livepatch-develUpgrade kernel-rt-vdsoUpgrade reiserfs-kmp-rtUpgrade kernel-default-develUpgrade kernel-source-azureUpgrade kernel-rt_debug-vdsoUpgrade kernel-obs-buildUpgrade kernel-64kbUpgrade kernel-source-rtUpgrade kernel-debug-livepatch-develUpgrade kernel-debug-vdsoUpgrade cluster-md-kmp-64kbUpgrade kernel-syms-azureUpgrade dlm-kmp-rtUpgrade dtb-nvidiaUpgrade kernel-rt_debugUpgrade kernel-kvmsmallUpgrade dtb-amlogicUpgrade dtb-amdUpgrade dtb-alteraUpgrade dtb-caviumUpgrade dtb-freescaleUpgrade dlm-kmp-defaultUpgrade kernel-rtUpgrade dtb-sprdUpgrade kernel-source-vanillaUpgrade kernel-azure-vdsoUpgrade kselftests-kmp-azureUpgrade kernel-default-livepatchUpgrade kernel-kvmsmall-vdsoUpgrade dtb-amazonUpgrade reiserfs-kmp-64kbUpgrade dtb-lgUpgrade dtb-appleUpgrade kernel-azure-develUpgrade dlm-kmp-64kbUpgrade kernel-syms-rtUpgrade kernel-rt-optionalUpgrade kernel-rt_debug-develUpgrade dtb-socionextUpgrade kernel-docs-htmlUpgrade dtb-broadcomUpgrade kernel-azureUpgrade gfs2-kmp-azureUpgrade kernel-azure-optionalUpgrade kernel-devel-azureUpgrade kernel-azure-extraUpgrade dtb-marvellUpgrade kernel-64kb-extraUpgrade kernel-rt-extraUpgrade kernel-rt-livepatch-develUpgrade kernel-kvmsmall-livepatch-develUpgrade kselftests-kmp-64kbUpgrade ocfs2-kmp-64kbUpgrade kernel-default-optionalUpgrade dtb-hisiliconUpgrade dtb-mediatekUpgrade cluster-md-kmp-defaultUpgrade dtb-apmUpgrade kernel-debug-develUpgrade ocfs2-kmp-azureUpgrade reiserfs-kmp-azureUpgrade kernel-symsUpgrade kernel-obs-qaUpgrade kernel-defaultUpgrade dtb-rockchipUpgrade cluster-md-kmp-azureUpgrade reiserfs-kmp-defaultUpgrade kernel-rt-develUpgrade kernel-kvmsmall-develUpgrade kernel-default-extraUpgrade cluster-md-kmp-rtUpgrade kernel-zfcpdumpUpgrade kernel-macrosUpgrade kernel-docsUpgrade kernel-devel-rtUpgrade kernel-64kb-optionalUpgrade kernel-64kb-develUpgrade dtb-renesasUpgrade dtb-armUpgrade kernel-sourceUpgrade kernel-64kb-livepatch-develUpgrade ocfs2-kmp-rtUpgrade kernel-rt_debug-livepatch-develUpgrade kernel-debugUpgrade gfs2-kmp-64kbUpgrade kernel-default-base-rebuildUpgrade ocfs2-kmp-defaultUpgrade kselftests-kmp-rtUpgrade kselftests-kmp-defaultUpgrade kernel-default-vdsoUpgrade kernel-default-livepatch-develUpgrade kernel-default-baseUpgrade dtb-allwinnerUpgrade gfs2-kmp-rtUpgrade dtb-qcomUpgrade dtb-exynosUpgrade dlm-kmp-azureUpgrade kernel-develUpgrade dtb-xilinx | Dec 5, 2025 | Sep 10, 2024 |
| Ubuntu | — | Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-6.8.0-1013-nvidia-lowlatencyUpgrade linux-image-oem-22.04dUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-oracle-64kUpgrade linux-image-6.8.0-44-generic-64kUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-6.8.0-1011-raspiUpgrade linux-image-awsUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-kvmUpgrade linux-image-nvidia-64kUpgrade linux-image-oracleUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-6.8.0-1013-nvidia-lowlatency-64kUpgrade linux-image-azure-fdeUpgrade linux-image-6.8.0-1013-nvidia-64kUpgrade linux-image-gcpUpgrade linux-image-6.8.0-1014-azure-fdeUpgrade linux-image-6.8.0-1014-gcpUpgrade linux-image-oem-22.04bUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-6.8.0-1010-gkeUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-6.8.0-45-generic-64kUpgrade linux-image-oem-22.04cUpgrade linux-image-ibmUpgrade linux-image-raspiUpgrade linux-image-virtualUpgrade linux-image-lowlatency-64kUpgrade linux-image-gkeUpgrade linux-image-nvidiaUpgrade linux-image-oem-22.04aUpgrade linux-image-6.8.0-1012-oracleUpgrade linux-image-oem-22.04Upgrade linux-image-6.8.0-1013-nvidiaUpgrade linux-image-6.8.0-1012-oemUpgrade linux-image-6.8.0-1012-oracle-64kUpgrade linux-image-6.8.0-45-genericUpgrade linux-image-lowlatencyUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-6.8.0-44-genericUpgrade linux-image-6.8.0-1015-awsUpgrade linux-image-azureUpgrade linux-image-6.8.0-1012-ibmUpgrade linux-image-generic-64kUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-ibm-classicUpgrade linux-image-generic-lpaeUpgrade linux-image-6.8.0-44-lowlatency-64kUpgrade linux-image-6.8.0-44-lowlatencyUpgrade linux-image-nvidia-6.8Upgrade linux-image-6.8.0-1014-azureUpgrade linux-image-genericUpgrade linux-image-lowlatency-hwe-22.04 | Sep 12, 2024 | Jul 12, 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