GPU VulnDB

Database/Kernel, userspace & hypervisor

Linux kernel BPF: two timer callbacks cancelling each other deadlock the CPUs they run on

CVSS 5.5CVE-2024-42239Kernel, userspace & hypervisorcurated

Impact

bpf_timer_cancel() waits synchronously for the target timer's callback to finish. Two BPF timer callbacks that cancel each other therefore each wait on the other, and both CPUs spin until the machine is wedged. The fix tracks in-flight cancellations in an atomic counter and returns -EDEADLK instead of busy-waiting. Reaching it requires the ability to load a BPF program with timers, which on a normal node means root or CAP_BPF - so this is an availability bug for hosts that let semi-trusted code load BPF (CNI/observability agents, operators handed CAP_BPF) rather than something a plain tenant pod can trigger. The consequence is a hung node that only a reboot clears, which on a GPU node means losing whatever training job was resident.

Who can reach it

Local, requires privilege to load BPF programs (root or CAP_BPF) and to run two timer callbacks that cancel one another. Not reachable from an unprivileged container without BPF access, and not remote.

What to do

Take the stable kernel update adding the cancelling counter (four stable branches carry it; the record gives commits, not release numbers). Rollout is a kernel install and a reboot per node. Until then, the practical mitigation is not granting CAP_BPF or root to workloads you do not trust to load correct BPF programs.

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.