In the Linux kernel, the following vulnerability has been resolved:
fs/netfs/fscache_cookie: add missing "n_accesses" check
This fixes a NULL pointer dereference bug due to a data race which looks like this:
BUG: kernel NULL pointer dereference, address: 0000000000000008 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page PGD 0 P4D 0 Oops: 0000 [#1] SMP PTI CPU: 33 PID: 16573 Comm: kworker/u97:799 Not tainted 6.8.7-cm4all1-hp+ #43 Hardware name: HP ProLiant DL380 Gen9/ProLiant DL380 Gen9, BIOS P89 10/17/2018 Workqueue: events_unbound netfs_rreq_write_to_cache_work RIP: 0010:cachefiles_prepare_write+0x30/0xa0 Code: 57 41 56 45 89 ce 41 55 49 89 cd 41 54 49 89 d4 55 53 48 89 fb 48 83 ec 08 48 8b 47 08 48 83 7f 10 00 48 89 34 24 48 8b 68 20 <48> 8b 45 08 4c 8b 38 74 45 49 8b 7f 50 e8 4e a9 b0 ff 48 8b 73 10 RSP: 0018:ffffb4e78113bde0 EFLAGS: 00010286 RAX: ffff976126be6d10 RBX: ffff97615cdb8438 RCX: 0000000000020000 RDX: ffff97605e6c4c68 RSI: ffff97605e6c4c60 RDI: ffff97615cdb8438 RBP: 0000000000000000 R08: 0000000000278333 R09: 0000000000000001 R10: ffff97605e6c4600 R11: 0000000000000001 R12: ffff97605e6c4c68 R13: 0000000000020000 R14: 0000000000000001 R15: ffff976064fe2c00 FS: 0000000000000000(0000) GS:ffff9776dfd40000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000008 CR3: 000000005942c002 CR4: 00000000001706f0 Call Trace: <TASK> ? __die+0x1f/0x70 ? page_fault_oops+0x15d/0x440 ? search_module_extables+0xe/0x40 ? fixup_exception+0x22/0x2f0 ? exc_page_fault+0x5f/0x100 ? asm_exc_page_fault+0x22/0x30 ? cachefiles_prepare_write+0x30/0xa0 netfs_rreq_write_to_cache_work+0x135/0x2e0 process_one_work+0x137/0x2c0 worker_thread+0x2e9/0x400 ? __pfx_worker_thread+0x10/0x10 kthread+0xcc/0x100 ? __pfx_kthread+0x10/0x10 ret_from_fork+0x30/0x50 ? __pfx_kthread+0x10/0x10 ret_from_fork_asm+0x1b/0x30 </TASK> Modules linked in: CR2: 0000000000000008 ---[ end trace 0000000000000000 ]---
This happened because fscache_cookie_state_machine() was slow and was still running while another process invoked fscache_unuse_cookie(); this led to a fscache_cookie_lru_do_one() call, setting the FSCACHE_COOKIE_DO_LRU_DISCARD flag, which was picked up by fscache_cookie_state_machine(), withdrawing the cookie via cachefiles_withdraw_cookie(), clearing cookie->cache_priv.
At the same time, yet another process invoked cachefiles_prepare_write(), which found a NULL pointer in this code line:
struct cachefiles_object *object = cachefiles_cres_object(cres);
The next line crashes, obviously:
struct cachefiles_cache *cache = object->volume->cache;
During cachefiles_prepare_write(), the "n_accesses" counter is non-zero (via fscache_begin_operation()). The cookie must not be withdrawn until it drops to zero.
The counter is checked by fscache_cookie_state_machine() before switching to FSCACHE_COOKIE_STATE_RELINQUISHING and FSCACHE_COOKIE_STATE_WITHDRAWING (in "case FSCACHE_COOKIE_STATE_FAILED"), but not for FSCACHE_COOKIE_STATE_LRU_DISCARDING ("case FSCACHE_COOKIE_STATE_ACTIVE").
This patch adds the missing check. With a non-zero access counter, the function returns and the next fscache_end_cookie_access() call will queue another fscache_cookie_state_machine() call to handle the still-pending FSCACHE_COOKIE_DO_LRU_DISCARD.
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-toolsUpgrade perf-debuginfoUpgrade kernel-tools-develUpgrade kernel-libbpf-develUpgrade kernel-modules-extra-commonUpgrade kernel-libbpf-staticUpgrade perfUpgrade python3-perfUpgrade kernelUpgrade kernel-debuginfo-common-aarch64Upgrade python3-perf-debuginfoUpgrade kernel-debuginfoUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-livepatch-6.1.109-118.189Upgrade kernel-develUpgrade kernel-modules-extraUpgrade bpftoolUpgrade kernel-libbpfUpgrade kernel-headersUpgrade bpftool-debuginfoUpgrade kernel-tools-debuginfo | Oct 16, 2025 | Sep 4, 2024 |
| Debian | — | Upgrade linuxUpgrade linux-6.1 | Oct 7, 2024 | Sep 4, 2024 |
| Redhat_linux | — | Upgrade kernel-rtNo solution existsUpgrade kernel | May 15, 2025 | Sep 4, 2024 |
| Suse | — | Upgrade kernel-obs-qaUpgrade dtb-renesasUpgrade gfs2-kmp-rtUpgrade kernel-debugUpgrade kernel-devel-azureUpgrade kernel-default-optionalUpgrade ocfs2-kmp-rtUpgrade cluster-md-kmp-azureUpgrade kernel-default-extraUpgrade kernel-devel-rtUpgrade kernel-syms-azureUpgrade kernel-64kb-livepatch-develUpgrade kernel-64kb-optionalUpgrade dlm-kmp-azureUpgrade kernel-64kb-develUpgrade dlm-kmp-defaultUpgrade dtb-amdUpgrade kernel-zfcpdumpUpgrade kernel-64kbUpgrade kernel-azure-livepatch-develUpgrade gfs2-kmp-64kbUpgrade kernel-kvmsmallUpgrade cluster-md-kmp-rtUpgrade dtb-apmUpgrade kernel-rt-develUpgrade reiserfs-kmp-azureUpgrade dtb-hisiliconUpgrade ocfs2-kmp-azureUpgrade kernel-macrosUpgrade kernel-syms-rtUpgrade dtb-amlogicUpgrade kernel-rt-livepatch-develUpgrade dtb-armUpgrade reiserfs-kmp-defaultUpgrade kernel-debug-develUpgrade reiserfs-kmp-rtUpgrade kernel-kvmsmall-develUpgrade kernel-rt-livepatchUpgrade kernel-debug-livepatch-develUpgrade cluster-md-kmp-defaultUpgrade dtb-xilinxUpgrade kernel-rt_debug-vdsoUpgrade kernel-azure-vdsoUpgrade kernel-develUpgrade kselftests-kmp-defaultUpgrade kernel-docsUpgrade dtb-mediatekUpgrade kselftests-kmp-rtUpgrade kernel-symsUpgrade kernel-default-base-rebuildUpgrade kernel-defaultUpgrade kernel-64kb-extraUpgrade dtb-marvellUpgrade cluster-md-kmp-64kbUpgrade kernel-default-develUpgrade dtb-appleUpgrade kernel-rt-vdsoUpgrade gfs2-kmp-defaultUpgrade dtb-lgUpgrade kernel-sourceUpgrade dtb-qcomUpgrade kernel-rt_debug-livepatch-develUpgrade dlm-kmp-rtUpgrade dtb-socionextUpgrade dtb-nvidiaUpgrade kernel-source-vanillaUpgrade kernel-kvmsmall-livepatch-develUpgrade dtb-alteraUpgrade ocfs2-kmp-defaultUpgrade kernel-docs-htmlUpgrade dlm-kmp-64kbUpgrade dtb-allwinnerUpgrade kernel-rt_debugUpgrade kernel-rtUpgrade kernel-default-livepatchUpgrade kernel-default-baseUpgrade dtb-freescaleUpgrade dtb-caviumUpgrade kselftests-kmp-64kbUpgrade reiserfs-kmp-64kbUpgrade kselftests-kmp-azureUpgrade ocfs2-kmp-64kbUpgrade dtb-rockchipUpgrade kernel-default-livepatch-develUpgrade gfs2-kmp-azureUpgrade kernel-rt-optionalUpgrade kernel-rt-extraUpgrade kernel-kvmsmall-vdsoUpgrade kernel-azureUpgrade dtb-exynosUpgrade dtb-amazonUpgrade kernel-source-rtUpgrade kernel-source-azureUpgrade dtb-sprdUpgrade kernel-rt_debug-develUpgrade kernel-default-vdsoUpgrade kernel-debug-vdsoUpgrade kernel-azure-optionalUpgrade kernel-azure-extraUpgrade kernel-azure-develUpgrade dtb-broadcomUpgrade kernel-obs-build | Dec 5, 2025 | Jun 3, 2025 |
| Ubuntu | — | Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-gkeop-6.8Upgrade linux-image-nvidia-64kUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-generic-lpaeUpgrade linux-image-lowlatencyUpgrade linux-image-6.8.0-1015-gkeUpgrade linux-image-ibmUpgrade linux-image-oem-24.04aUpgrade linux-image-gcpUpgrade linux-image-6.8.0-1019-nvidia-lowlatency-64kUpgrade linux-image-oracle-64kUpgrade linux-image-6.8.0-1019-nvidia-64kUpgrade linux-image-ibm-classicUpgrade linux-image-6.8.0-1017-ibmUpgrade linux-image-6.8.0-1020-azureUpgrade linux-image-oem-22.04aUpgrade linux-image-azureUpgrade linux-image-6.8.0-50-generic-64kUpgrade linux-image-lowlatency-64kUpgrade linux-image-6.8.0-1019-nvidiaUpgrade linux-image-generic-64kUpgrade linux-image-gkeopUpgrade linux-image-gkeUpgrade linux-image-oem-24.04Upgrade linux-image-raspiUpgrade linux-image-nvidiaUpgrade linux-image-6.8.0-1018-oemUpgrade linux-image-oem-22.04Upgrade linux-image-oem-22.04cUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-6.8.0-1019-nvidia-lowlatencyUpgrade linux-image-genericUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-6.8.0-1020-azure-fdeUpgrade linux-image-awsUpgrade linux-image-6.8.0-1020-awsUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.8.0-1002-gkeopUpgrade linux-image-virtualUpgrade linux-image-6.8.0-50-lowlatencyUpgrade linux-image-6.8.0-1017-oracle-64kUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-oracleUpgrade linux-image-kvmUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-6.8.0-50-lowlatency-64kUpgrade linux-image-6.8.0-1016-raspiUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-6.8.0-1017-oracleUpgrade linux-image-azure-fdeUpgrade linux-image-nvidia-6.8Upgrade linux-image-oem-22.04dUpgrade linux-image-6.8.0-50-genericUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-oem-22.04bUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-6.8.0-1019-gcp | Dec 13, 2024 | Sep 4, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jan 20, 2025 | Sep 4, 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