CVE-2023-54019 Details
Description
In the Linux kernel, the following vulnerability has been resolved: sched/psi: use kernfs polling functions for PSI trigger polling Destroying psi trigger in cgroup_file_release causes UAF issues when a cgroup is removed from under a polling process. This is happening because cgroup removal causes a call to cgroup_file_release while the actual file is still alive. Destroying the trigger at this point would also destroy its waitqueue head and if there is still a polling process on that file accessing the waitqueue, it will step on the freed pointer: do_select vfs_poll do_rmdir cgroup_rmdir kernfs_drain_open_files cgroup_file_release cgroup_pressure_release psi_trigger_destroy wake_up_pollfree(&t->event_wait) // vfs_poll is unblocked synchronize_rcu kfree(t) poll_freewait -> UAF access to the trigger's waitqueue head Patch [1] fixed this issue for epoll() case using wake_up_pollfree(), however the same issue exists for synchronous poll() case. The root cause of this issue is that the lifecycles of the psi trigger's waitqueue and of the file associated with the trigger are different. Fix this by using kernfs_generic_poll function when polling on cgroup-specific psi triggers. It internally uses kernfs_open_node->poll waitqueue head with its lifecycle tied to the file's lifecycle. This also renders the fix in [1] obsolete, so revert it. [1] commit c2dbe32d5db5 ("sched/psi: Fix use-after-free in ep_remove_wait_queue()")
A use-after-free vulnerability has been identified in the Linux kernel's handling of Pressure Stall Information (PSI) triggers within control groups (cgroups). This issue arises when a cgroup is removed while a polling process is still accessing its associated PSI trigger file. The removal triggers a call to release the cgroup file, but if the file is still in use, it can lead to a use-after-free condition by freeing a pointer that is still being accessed by the polling process. Although a previous patch addressed this issue for epoll cases, the same vulnerability persists for synchronous poll() operations. The root cause lies in the mismatched lifecycles of the PSI trigger's waitqueue and the corresponding file, creating a vulnerability that can be exploited during cgroup removal processes.
The vulnerability has been fixed in the upstream Linux kernel. Users should upgrade to the latest version.
Metrics
CVSS 4.0 Severity and Vector Strings:
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
Volerion
Assessed Dec 24, 2025References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
| URL | Source(s) | Tag(s) |
|---|---|---|
| https://git.kernel.org/stable/c/92cc0153324b6ae8577a39f5bf2cd83c9a34ea6a | kernel.org | Source CodeVendor |
| https://git.kernel.org/stable/c/aff037078ecaecf34a7c2afab1341815f90fba5e | kernel.org | Source CodeVendor |
| https://git.kernel.org/stable/c/d124ab17024cc85a1079b7810a018a497ebc13da | kernel.org | Source CodeVendor |
Weakness Enumeration
No weakness enumeration is available for this CVE.
Affected Products
| Product | Versions |
|---|---|
| Linux kernel | All versions |
CPE
Remediation
| |
Change History
3 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Aug 4, 2026 | CVE Modified | kernel.org |
| Jun 17, 2026 | CVE Modified | kernel.org |
| Dec 24, 2025 | New CVE Received | kernel.org |
Volerion