GPU VulnDB

Database/Kernel, userspace & hypervisor

Linux kernel sched/psi: use-after-free when a cgroup is removed under a poll() on its pressure file

CVSS 7.8CVE-2023-54019Kernel, userspace & hypervisorcurated

Impact

Destroying a PSI trigger in cgroup_file_release frees the waitqueue head while a synchronous poll() on the cgroup's pressure file is still referencing it, so removing a cgroup out from under a poller gives a use-after-free in poll_freewait. This is directly reachable in a Kubernetes GPU fleet: pressure-stall monitors and memory-pressure-aware eviction agents poll cgroup psi files, and pods are created and torn down constantly, so cgroup removal racing a poller is routine rather than exotic. The record describes a kernel UAF; the realistic outcome on a busy node is a crash that takes all co-tenant pods with it.

Who can reach it

Local user or agent that can poll() a cgroup's pressure file while another party removes that cgroup. In practice a node agent with cgroupfs access, or a tenant that can both poll its own cgroup's psi file and cause the cgroup to be removed.

What to do

Update to a stable kernel carrying the kernfs_generic_poll conversion (commits 92cc0153324b, aff037078eca, d124ab17024c) and reboot each node. Interim mitigation: stop PSI-polling agents from poll()ing cgroup-scoped pressure files, or disable PSI (psi=0 on the kernel command line, which also requires a reboot).

References

Related entries

All Kernel, userspace & hypervisor entries

This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.