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 perfUpgrade perf-debuginfoUpgrade kernel-tools-develUpgrade python3-perfUpgrade kernelUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-modules-extra-commonUpgrade kernel-libbpf-develUpgrade kernel-libbpf-staticUpgrade kernel-libbpfUpgrade bpftoolUpgrade python3-perf-debuginfoUpgrade kernel-livepatch-6.1.109-118.189Upgrade kernel-debuginfo-common-x86_64Upgrade kernel-develUpgrade kernel-headersUpgrade bpftool-debuginfoUpgrade kernel-debuginfoUpgrade kernel-tools-debuginfoUpgrade kernel-modules-extra | Oct 16, 2025 | Sep 4, 2024 |
| Debian | — | Upgrade linux-6.1Upgrade linux | Oct 7, 2024 | Sep 4, 2024 |
| Redhat_linux | — | Upgrade kernel-rtNo solution existsUpgrade kernel | May 15, 2025 | Sep 4, 2024 |
| Suse | — | Upgrade kernel-devel-azureUpgrade kernel-rt_debug-vdsoUpgrade kselftests-kmp-rtUpgrade cluster-md-kmp-azureUpgrade ocfs2-kmp-rtUpgrade kernel-devel-rtUpgrade kernel-syms-azureUpgrade kernel-default-extraUpgrade dtb-xilinxUpgrade dlm-kmp-azureUpgrade kernel-64kb-develUpgrade dtb-mediatekUpgrade kselftests-kmp-defaultUpgrade cluster-md-kmp-defaultUpgrade reiserfs-kmp-rtUpgrade kernel-azure-vdsoUpgrade dtb-renesasUpgrade dtb-amdUpgrade kernel-obs-qaUpgrade kernel-symsUpgrade kernel-rt-livepatch-develUpgrade kernel-debugUpgrade kernel-rt-develUpgrade gfs2-kmp-rtUpgrade ocfs2-kmp-azureUpgrade reiserfs-kmp-azureUpgrade dtb-amlogicUpgrade kernel-develUpgrade kernel-kvmsmallUpgrade kernel-rt-livepatchUpgrade kernel-syms-rtUpgrade kernel-kvmsmall-develUpgrade kernel-zfcpdumpUpgrade kernel-64kb-optionalUpgrade kernel-64kb-livepatch-develUpgrade kernel-azure-livepatch-develUpgrade kernel-debug-livepatch-develUpgrade kernel-64kbUpgrade kernel-debug-develUpgrade dtb-apmUpgrade dtb-armUpgrade gfs2-kmp-64kbUpgrade kernel-docsUpgrade reiserfs-kmp-defaultUpgrade kernel-macrosUpgrade cluster-md-kmp-rtUpgrade dtb-hisiliconUpgrade kernel-default-optionalUpgrade dlm-kmp-defaultUpgrade kernel-rt-vdsoUpgrade reiserfs-kmp-64kbUpgrade kernel-default-vdsoUpgrade dtb-appleUpgrade kernel-sourceUpgrade kselftests-kmp-azureUpgrade gfs2-kmp-azureUpgrade kernel-rt-optionalUpgrade kernel-azureUpgrade dtb-exynosUpgrade dtb-amazonUpgrade kernel-rt-extraUpgrade gfs2-kmp-defaultUpgrade kernel-source-azureUpgrade kernel-rt_debug-livepatch-develUpgrade dtb-nvidiaUpgrade kernel-docs-htmlUpgrade dtb-socionextUpgrade dtb-alteraUpgrade dlm-kmp-rtUpgrade ocfs2-kmp-defaultUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-source-vanillaUpgrade dtb-freescaleUpgrade kernel-rt_debug-develUpgrade kernel-debug-vdsoUpgrade kernel-azure-optionalUpgrade kernel-azure-extraUpgrade kernel-azure-develUpgrade dtb-qcomUpgrade cluster-md-kmp-64kbUpgrade kernel-default-livepatch-develUpgrade kernel-defaultUpgrade ocfs2-kmp-64kbUpgrade dtb-rockchipUpgrade kernel-rtUpgrade dlm-kmp-64kbUpgrade dtb-allwinnerUpgrade dtb-broadcomUpgrade kernel-obs-buildUpgrade kernel-default-base-rebuildUpgrade kernel-64kb-extraUpgrade dtb-marvellUpgrade dtb-lgUpgrade kernel-default-livepatchUpgrade kselftests-kmp-64kbUpgrade kernel-rt_debugUpgrade kernel-default-baseUpgrade dtb-caviumUpgrade kernel-default-develUpgrade kernel-source-rtUpgrade dtb-sprdUpgrade kernel-kvmsmall-vdso | Dec 5, 2025 | Jun 3, 2025 |
| Ubuntu | — | Upgrade linux-image-ibm-classicUpgrade linux-image-oracle-64kUpgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-6.8.0-50-generic-64kUpgrade linux-image-gkeopUpgrade linux-image-generic-64kUpgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-6.8.0-1020-azureUpgrade linux-image-generic-lpaeUpgrade linux-image-gkeUpgrade linux-image-6.8.0-1019-nvidiaUpgrade linux-image-6.8.0-1015-gkeUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-oem-22.04aUpgrade linux-image-6.8.0-1017-ibmUpgrade linux-image-gkeop-6.8Upgrade linux-image-6.8.0-1019-nvidia-64kUpgrade linux-image-azureUpgrade linux-image-ibmUpgrade linux-image-gcpUpgrade linux-image-6.8.0-1019-nvidia-lowlatency-64kUpgrade linux-image-lowlatency-64kUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-oem-24.04aUpgrade linux-image-lowlatencyUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-6.8.0-1018-oemUpgrade linux-image-oem-22.04cUpgrade linux-image-nvidia-64kUpgrade linux-image-oem-22.04Upgrade linux-image-raspiUpgrade linux-image-genericUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-6.8.0-1019-nvidia-lowlatencyUpgrade linux-image-nvidiaUpgrade linux-image-oem-24.04Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.8.0-50-lowlatencyUpgrade linux-image-oracleUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-6.8.0-1017-oracleUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-6.8.0-1016-raspiUpgrade linux-image-6.8.0-50-lowlatency-64kUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-virtualUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-6.8.0-50-genericUpgrade linux-image-kvmUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-6.8.0-1017-oracle-64kUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-6.8.0-1019-gcpUpgrade linux-image-azure-fdeUpgrade linux-image-oem-22.04bUpgrade linux-image-6.8.0-1020-azure-fdeUpgrade linux-image-oem-22.04dUpgrade linux-image-6.8.0-1002-gkeopUpgrade linux-image-6.8.0-1020-awsUpgrade linux-image-awsUpgrade linux-image-nvidia-6.8 | 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