In the Linux kernel, the following vulnerability has been resolved:
cachefiles: fix slab-use-after-free in fscache_withdraw_volume()
We got the following issue in our fault injection stress test:
================================================================== BUG: KASAN: slab-use-after-free in fscache_withdraw_volume+0x2e1/0x370 Read of size 4 at addr ffff88810680be08 by task ondemand-04-dae/5798
CPU: 0 PID: 5798 Comm: ondemand-04-dae Not tainted 6.8.0-dirty #565 Call Trace: kasan_check_range+0xf6/0x1b0 fscache_withdraw_volume+0x2e1/0x370 cachefiles_withdraw_volume+0x31/0x50 cachefiles_withdraw_cache+0x3ad/0x900 cachefiles_put_unbind_pincount+0x1f6/0x250 cachefiles_daemon_release+0x13b/0x290 __fput+0x204/0xa00 task_work_run+0x139/0x230
Allocated by task 5820: __kmalloc+0x1df/0x4b0 fscache_alloc_volume+0x70/0x600 __fscache_acquire_volume+0x1c/0x610 erofs_fscache_register_volume+0x96/0x1a0 erofs_fscache_register_fs+0x49a/0x690 erofs_fc_fill_super+0x6c0/0xcc0 vfs_get_super+0xa9/0x140 vfs_get_tree+0x8e/0x300 do_new_mount+0x28c/0x580 [...]
Freed by task 5820: kfree+0xf1/0x2c0 fscache_put_volume.part.0+0x5cb/0x9e0 erofs_fscache_unregister_fs+0x157/0x1b0 erofs_kill_sb+0xd9/0x1c0 deactivate_locked_super+0xa3/0x100 vfs_get_super+0x105/0x140 vfs_get_tree+0x8e/0x300 do_new_mount+0x28c/0x580 [...] ==================================================================
Following is the process that triggers the issue:
mount failed | daemon exit ------------------------------------------------------------ deactivate_locked_super cachefiles_daemon_release erofs_kill_sb erofs_fscache_unregister_fs fscache_relinquish_volume __fscache_relinquish_volume fscache_put_volume(fscache_volume, fscache_volume_put_relinquish) zero = __refcount_dec_and_test(&fscache_volume->ref, &ref); cachefiles_put_unbind_pincount cachefiles_daemon_unbind cachefiles_withdraw_cache cachefiles_withdraw_volumes list_del_init(&volume->cache_link) fscache_free_volume(fscache_volume) cache->ops->free_volume cachefiles_free_volume list_del_init(&cachefiles_volume->cache_link); kfree(fscache_volume) cachefiles_withdraw_volume fscache_withdraw_volume fscache_volume->n_accesses // fscache_volume UAF !!!
The fscache_volume in cache->volumes must not have been freed yet, but its reference count may be 0. So use the new fscache_try_get_volume() helper function try to get its reference count.
If the reference count of fscache_volume is 0, fscache_put_volume() is freeing it, so wait for it to be removed from cache->volumes.
If its reference count is not 0, call cachefiles_withdraw_volume() with reference count protection to avoid the above issue.
CVSS Details
- CVSS 3.1 Base Score: 7.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon_linux_2023 | — | Upgrade kernel-modules-extra-commonUpgrade kernel-headersUpgrade kernel-toolsUpgrade perf-debuginfoUpgrade kernel-libbpf-develUpgrade perfUpgrade kernel-livepatch-6.1.102-108.177Upgrade kernelUpgrade kernel-tools-develUpgrade kernel-debuginfoUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-develUpgrade python3-perf-debuginfoUpgrade kernel-libbpf-staticUpgrade python3-perfUpgrade bpftool-debuginfoUpgrade kernel-tools-debuginfoUpgrade kernel-libbpfUpgrade bpftoolUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-modules-extra | Feb 26, 2025 | Jul 29, 2024 |
| Debian | — | Upgrade linux-6.1Upgrade linux | Sep 2, 2024 | Jul 29, 2024 |
| Redhat_linux | — | Upgrade kernel-rtUpgrade kernelNo solution exists | Dec 5, 2024 | Jul 29, 2024 |
| Suse | — | Upgrade kernel-default-develUpgrade kernel-devel-rtUpgrade kernel-debug-develUpgrade kernel-rt-livepatchUpgrade dtb-hisiliconUpgrade kernel-64kb-livepatch-develUpgrade kernel-source-azureUpgrade dtb-amdUpgrade kernel-default-livepatch-develUpgrade dtb-lgUpgrade gfs2-kmp-defaultUpgrade kernel-source-vanillaUpgrade kselftests-kmp-64kbUpgrade gfs2-kmp-azureUpgrade kernel-default-baseUpgrade cluster-md-kmp-64kbUpgrade dtb-caviumUpgrade kernel-64kb-extraUpgrade kernel-develUpgrade kernel-64kbUpgrade dtb-sprdUpgrade kernel-debugUpgrade dtb-renesasUpgrade dtb-amazonUpgrade kernel-symsUpgrade kernel-azure-optionalUpgrade kernel-64kb-develUpgrade kernel-64kb-optionalUpgrade gfs2-kmp-64kbUpgrade dtb-mediatekUpgrade dtb-exynosUpgrade dtb-allwinnerUpgrade dlm-kmp-rtUpgrade dtb-armUpgrade dtb-xilinxUpgrade cluster-md-kmp-rtUpgrade kernel-default-vdsoUpgrade dlm-kmp-64kbUpgrade kernel-default-optionalUpgrade kernel-rt_debug-livepatch-develUpgrade reiserfs-kmp-azureUpgrade reiserfs-kmp-defaultUpgrade ocfs2-kmp-defaultUpgrade dtb-alteraUpgrade kernel-defaultUpgrade kernel-rt-develUpgrade ocfs2-kmp-azureUpgrade cluster-md-kmp-azureUpgrade kernel-default-livepatchUpgrade kernel-sourceUpgrade kernel-default-base-rebuildUpgrade kernel-azure-develUpgrade dtb-rockchipUpgrade dtb-marvellUpgrade kernel-syms-rtUpgrade kernel-docs-htmlUpgrade kernel-macrosUpgrade kernel-zfcpdumpUpgrade reiserfs-kmp-64kbUpgrade kernel-rt_debugUpgrade gfs2-kmp-rtUpgrade dtb-apmUpgrade reiserfs-kmp-rtUpgrade kernel-source-rtUpgrade kernel-obs-qaUpgrade kernel-kvmsmall-develUpgrade kernel-kvmsmallUpgrade kernel-debug-livepatch-develUpgrade kernel-azureUpgrade dtb-appleUpgrade ocfs2-kmp-rtUpgrade kernel-azure-livepatch-develUpgrade ocfs2-kmp-64kbUpgrade kselftests-kmp-defaultUpgrade kernel-rt-optionalUpgrade kernel-debug-vdsoUpgrade kernel-azure-vdsoUpgrade dtb-amlogicUpgrade kernel-rt-extraUpgrade cluster-md-kmp-defaultUpgrade kselftests-kmp-azureUpgrade kernel-rt_debug-develUpgrade kernel-rt-livepatch-develUpgrade dlm-kmp-defaultUpgrade kernel-docsUpgrade kernel-syms-azureUpgrade kernel-rt_debug-vdsoUpgrade kernel-kvmsmall-livepatch-develUpgrade dlm-kmp-azureUpgrade kselftests-kmp-rtUpgrade kernel-azure-extraUpgrade dtb-socionextUpgrade dtb-qcomUpgrade kernel-rt-vdsoUpgrade kernel-rtUpgrade kernel-obs-buildUpgrade kernel-kvmsmall-vdsoUpgrade kernel-devel-azureUpgrade kernel-default-extraUpgrade dtb-freescaleUpgrade dtb-broadcomUpgrade dtb-nvidia | Aug 14, 2024 | Jul 29, 2024 |
| Ubuntu | — | Upgrade linux-image-6.8.0-1017-nvidia-lowlatency-64kUpgrade linux-image-oem-22.04bUpgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-6.8.0-1017-nvidia-lowlatencyUpgrade linux-image-nvidiaUpgrade linux-image-6.8.0-1014-ibmUpgrade linux-image-6.8.0-48-lowlatency-64kUpgrade linux-image-gkeUpgrade linux-image-oracle-64kUpgrade linux-image-oem-22.04cUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-6.8.0-48-generic-64kUpgrade linux-image-6.8.0-1018-awsUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-gcpUpgrade linux-image-6.8.0-1015-oracle-64kUpgrade linux-image-genericUpgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-oem-24.04aUpgrade linux-image-6.8.0-1017-nvidia-64kUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-6.8.0-1015-oracleUpgrade linux-image-nvidia-64kUpgrade linux-image-6.8.0-1002-gkeopUpgrade linux-image-6.8.0-48-genericUpgrade linux-image-lowlatency-64kUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-gkeopUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-generic-64kUpgrade linux-image-oem-24.04Upgrade linux-image-virtualUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-oem-22.04Upgrade linux-image-oracleUpgrade linux-image-gkeop-6.8Upgrade linux-image-6.8.0-1017-gcpUpgrade linux-image-oem-22.04dUpgrade linux-image-azureUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-6.8.0-1016-oemUpgrade linux-image-raspiUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-ibm-classicUpgrade linux-image-6.8.0-1013-gkeUpgrade linux-image-6.8.0-1014-raspiUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-awsUpgrade linux-image-6.8.0-1016-azure-fdeUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-6.8.0-1016-azureUpgrade linux-image-6.8.0-1017-nvidiaUpgrade linux-image-generic-lpaeUpgrade linux-image-kvmUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-6.8.0-1016-gcpUpgrade linux-image-ibmUpgrade linux-image-nvidia-6.8Upgrade linux-image-oem-22.04aUpgrade linux-image-6.8.0-1017-azure-fdeUpgrade linux-image-6.8.0-1017-azureUpgrade linux-image-lowlatencyUpgrade linux-image-azure-fdeUpgrade linux-image-6.8.0-48-lowlatencyUpgrade linux-image-nvidia-lowlatency | Nov 4, 2024 | Jul 29, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jan 20, 2025 | Jul 29, 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