In the Linux kernel, the following vulnerability has been resolved:
sched/psi: fix race between file release and pressure write
A potential race condition exists between pressure write and cgroup file release regarding the priv member of struct kernfs_open_file, which triggers the uaf reported in [1].
Consider the following scenario involving execution on two separate CPUs:
CPU0 CPU1 ==== ==== vfs_rmdir() kernfs_iop_rmdir() cgroup_rmdir() cgroup_kn_lock_live() cgroup_destroy_locked() cgroup_addrm_files() cgroup_rm_file() kernfs_remove_by_name() kernfs_remove_by_name_ns() vfs_write() __kernfs_remove() new_sync_write() kernfs_drain() kernfs_fop_write_iter() kernfs_drain_open_files() cgroup_file_write() kernfs_release_file() pressure_write() cgroup_file_release() ctx = of->priv; kfree(ctx); of->priv = NULL; cgroup_kn_unlock() cgroup_kn_lock_live() cgroup_get(cgrp) cgroup_kn_unlock() if (ctx->psi.trigger) // here, trigger uaf for ctx, that is of->priv
The cgroup_rmdir() is protected by the cgroup_mutex, it also safeguards the memory deallocation of of->priv performed within cgroup_file_release(). However, the operations involving of->priv executed within pressure_write() are not entirely covered by the protection of cgroup_mutex. Consequently, if the code in pressure_write(), specifically the section handling the ctx variable executes after cgroup_file_release() has completed, a uaf vulnerability involving of->priv is triggered.
Therefore, the issue can be resolved by extending the scope of the cgroup_mutex lock within pressure_write() to encompass all code paths involving of->priv, thereby properly synchronizing the race condition occurring between cgroup_file_release() and pressure_write().
And, if an live kn lock can be successfully acquired while executing the pressure write operation, it indicates that the cgroup deletion process has not yet reached its final stage; consequently, the priv pointer within open_file cannot be NULL. Therefore, the operation to retrieve the ctx value must be moved to a point *after* the live kn lock has been successfully acquired.
In another situation, specifically after entering cgroup_kn_lock_live() but before acquiring cgroup_mutex, there exists a different class of race condition:
CPU0: write memory.pressure CPU1: write cgroup.pressure=0 =========================== =============================
kernfs_fop_write_iter() kernfs_get_active_of(of) pressure_write() cgroup_kn_lock_live(memory.pressure) cgroup_tryget(cgrp) kernfs_break_active_protection(kn) ... blocks on cgroup_mutex
cgroup_pressure_write() cgroup_kn_lock_live(cgroup.pressure) cgroup_file_show(memory.pressure, false) kernfs_show(false) kernfs_drain_open_files() cgroup_file_release(of) kfree(ctx) of->priv = NULL cgroup_kn_unlock()
... acquires cgroup_mutex ctx = of->priv; // may now be NULL if (ctx->psi.trigger) // NULL dereference
Consequently, there is a possibility that of->priv is NULL, the pressure write needs to check for this.
Now that the scope of the cgroup_mutex has been expanded, the original explicit cgroup_get/put operations are no longer necessary, this is because acquiring/releasing the live kn lock inherently executes a cgroup get/put operation.
[1] BUG: KASAN: slab-use-after-free in pressure_write+0xa4/0x210 kernel/cgroup/cgroup.c:4011 Call Trace: pressure_write+0xa4/0x210 kernel/cgroup/cgroup.c:4011 cgroup_file_write+0x36f/0x790 kernel/cgroup/cgroup.c:43 ---truncated---
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 Ami 2 | — | Upgrade kernel-tools-debuginfoUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-tools-develUpgrade kernel-headersUpgrade kernelUpgrade kernel-debuginfoUpgrade python-perf-debuginfoUpgrade bpftoolUpgrade perf-debuginfoUpgrade kernel-toolsUpgrade perfUpgrade kernel-livepatch-5.10.260-259.1061Upgrade kernel-debuginfo-common-aarch64Upgrade python-perfUpgrade bpftool-debuginfoUpgrade kernel-devel | Aug 5, 2026 | Aug 5, 2026 |
| Amazon_linux_2023 | — | Upgrade python3-perf6.12-debuginfoUpgrade kernel6.18-modules-extra-commonUpgrade perf-debuginfoUpgrade kernel6.18-headersUpgrade kernel6.18-develUpgrade kernel6.12Upgrade python3-perfUpgrade kernel-develUpgrade python3-perf6.12Upgrade perf6.12-debuginfoUpgrade kernel6.12-debuginfo-common-x86_64Upgrade kernel-tools-debuginfoUpgrade bpftoolUpgrade kernel-modules-extraUpgrade kernel-tools-develUpgrade kernel-debuginfoUpgrade kernel-toolsUpgrade kernel6.18-toolsUpgrade kernel-debuginfo-common-aarch64Upgrade kernel6.18-debuginfo-common-aarch64Upgrade perfUpgrade kernel-livepatch-6.12.95-124.187Upgrade kernel6.18-modules-extraUpgrade kernel6.18-debuginfoUpgrade bpftool6.12-debuginfoUpgrade kernel6.12-develUpgrade kernel6.18-debuginfo-common-x86_64Upgrade kernel6.12-toolsUpgrade kernel6.18Upgrade kernel-headersUpgrade kernel6.12-modules-extra-commonUpgrade kernel6.12-debuginfo-common-aarch64Upgrade perf6.12Upgrade kernel6.12-tools-debuginfoUpgrade kernelUpgrade bpftool6.12Upgrade python3-perf6.18-debuginfoUpgrade kernel6.18-tools-debuginfoUpgrade kernel6.12-headersUpgrade kernel-modules-extra-commonUpgrade kernel6.12-tools-develUpgrade bpftool-debuginfoUpgrade bpftool6.18-debuginfoUpgrade kernel-livepatch-6.1.177-224.371Upgrade python3-perf-debuginfoUpgrade kernel6.12-modules-extraUpgrade bpftool6.18Upgrade python3-perf6.18Upgrade kernel6.18-tools-develUpgrade kernel6.12-debuginfoUpgrade kernel-debuginfo-common-x86_64Upgrade perf6.18-debuginfoUpgrade perf6.18Upgrade kernel-livepatch-6.18.33-63.124 | Jul 8, 2026 | Jun 24, 2026 |
| Redhat_linux | — | No solution existsUpgrade kernelUpgrade kernel-rt | Jul 17, 2026 | Jun 24, 2026 |
| Rocky_linux | — | Upgrade kernel-debug-devel-matchedUpgrade kernel-uki-virtUpgrade kernel-develUpgrade libperf-debuginfoUpgrade kernel-zfcpdump-modules-coreUpgrade python3-perfUpgrade kernel-modules-coreUpgrade kernel-rt-modules-extraUpgrade kernel-tools-libs-develUpgrade kernel-zfcpdump-debuginfoUpgrade kernel-rt-debug-develUpgrade perfUpgrade kernel-rt-coreUpgrade libperfUpgrade kernel-rt-debug-modules-extraUpgrade perf-debuginfoUpgrade kernel-devel-matchedUpgrade kernel-zfcpdump-coreUpgrade kernel-modules-extraUpgrade kernel-zfcpdump-modulesUpgrade kernel-coreUpgrade kernel-rt-debuginfo-common-x86_64Upgrade bpftool-debuginfoUpgrade kernel-rtUpgrade kernel-rt-kvmUpgrade kernel-modulesUpgrade kernel-toolsUpgrade kernel-rt-develUpgrade rvUpgrade kernel-zfcpdump-develUpgrade kernel-rt-modulesUpgrade kernel-debug-uki-virtUpgrade kernel-debug-coreUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-rt-debug-kvmUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-zfcpdumpUpgrade kernel-uki-virt-addonsUpgrade kernel-rt-debug-coreUpgrade kernel-rt-debug-modulesUpgrade kernel-debuginfo-common-s390xUpgrade kernel-debuginfoUpgrade kernel-debugUpgrade kernel-debug-develUpgrade kernel-debug-debuginfoUpgrade bpftoolUpgrade python3-perf-debuginfoUpgrade kernel-tools-debuginfoUpgrade kernel-rt-debug-debuginfoUpgrade kernel-debug-modules-extraUpgrade kernel-debug-modules-coreUpgrade kernel-debug-modulesUpgrade kernelUpgrade rtlaUpgrade kernel-rt-debug-modules-coreUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-tools-libsUpgrade kernel-rt-modules-coreUpgrade kernel-rt-debuginfoUpgrade kernel-rt-debug | Aug 24, 2026 | Aug 21, 2026 |
| Ubuntu | — | Upgrade linux-image-nvidia-64kUpgrade linux-image-azure-fdeUpgrade linux-image-nvidia-hwe-26.04Upgrade linux-image-7.0.0-1009-awsUpgrade linux-image-7.0.0-28-realtimeUpgrade linux-image-7.0.0-1009-azure-fdeUpgrade linux-image-6.8.0-1035-nvidia-tegraUpgrade linux-image-raspi-7.0Upgrade linux-image-oem-24.04dUpgrade linux-image-nvidia-bos-64k-7.0Upgrade linux-image-nvidia-bos-64kUpgrade linux-image-aws-64kUpgrade linux-image-realtime-64k-hwe-26.04Upgrade linux-image-raspi-realtimeUpgrade linux-image-azure-7.0Upgrade linux-image-gke-hwe-26.04Upgrade linux-image-gcpUpgrade linux-image-7.0.0-2016-nvidia-bosUpgrade linux-image-7.0.0-1011-gcpUpgrade linux-image-virtual-7.0Upgrade linux-image-virtualUpgrade linux-image-oem-24.04bUpgrade linux-image-7.0.0-1003-gkeUpgrade linux-image-ibmUpgrade linux-image-virtual-hwe-26.04Upgrade linux-image-oem-24.04cUpgrade linux-image-oem-7.0Upgrade linux-image-generic-hwe-26.04Upgrade linux-image-oracle-64k-7.0Upgrade linux-image-oem-24.04aUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-generic-7.0Upgrade linux-image-generic-64k-7.0Upgrade linux-image-realtime-hwe-26.04Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-nvidia-64k-7.0Upgrade linux-image-7.0.0-1008-oracleUpgrade linux-image-oracleUpgrade linux-image-awsUpgrade linux-image-7.0.0-1016-nvidia-64kUpgrade linux-image-oracle-7.0Upgrade linux-image-oracle-64kUpgrade linux-image-nvidia-tegra-rt-6.8Upgrade linux-image-nvidia-64k-hwe-26.04Upgrade linux-image-realtime-7.0Upgrade linux-image-7.0.0-1011-gcp-64kUpgrade linux-image-aws-7.0Upgrade linux-image-6.8.0-1035-nvidia-tegra-rtUpgrade linux-image-oem-26.04aUpgrade linux-image-raspi-realtime-7.0Upgrade linux-image-oem-26.04Upgrade linux-image-7.0.0-28-realtime-64kUpgrade linux-image-7.0.0-1016-nvidiaUpgrade linux-image-azure-fde-7.0Upgrade linux-image-nvidia-7.0Upgrade linux-image-realtimeUpgrade linux-image-raspiUpgrade linux-image-oem-24.04Upgrade linux-image-7.0.0-1010-ibmUpgrade linux-image-7.0.0-1008-gcp-64kUpgrade linux-image-nvidia-tegra-6.8Upgrade linux-image-nvidia-bos-7.0Upgrade linux-image-gke-64k-hwe-26.04Upgrade linux-image-azureUpgrade linux-image-7.0.0-1015-raspiUpgrade linux-image-7.0.0-1010-azureUpgrade linux-image-7.0.0-1009-aws-64kUpgrade linux-image-realtime-64kUpgrade linux-image-nvidia-tegraUpgrade linux-image-generic-64kUpgrade linux-image-aws-64k-7.0Upgrade linux-image-nvidiaUpgrade linux-image-7.0.0-2016-nvidia-bos-64kUpgrade linux-image-7.0.0-1008-gcpUpgrade linux-image-nvidia-tegra-rtUpgrade linux-image-ibm-7.0Upgrade linux-image-gke-64k-7.0Upgrade linux-image-generic-64k-hwe-26.04Upgrade linux-image-genericUpgrade linux-image-gcp-64k-7.0Upgrade linux-image-7.0.0-1014-azureUpgrade linux-image-7.0.0-1003-gke-64kUpgrade linux-image-7.0.0-1008-oracle-64kUpgrade linux-image-nvidia-bosUpgrade linux-image-gke-7.0Upgrade linux-image-gke-64kUpgrade linux-image-gkeUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-gcp-64kUpgrade linux-image-7.0.0-1009-oemUpgrade linux-image-7.0.0-28-genericUpgrade linux-image-7.0.0-1015-raspi-realtimeUpgrade linux-image-realtime-64k-7.0Upgrade linux-image-7.0.0-28-generic-64kUpgrade linux-image-gcp-7.0 | Jul 20, 2026 | Jun 24, 2026 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Sep 21, 2026 | Jun 24, 2026 |
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