GPU VulnDB

Database/Kernel, userspace & hypervisor

Linux kernel bpf: preemption left enabled in bpf_event_output corrupts shared perf sample buffer

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

Impact

bpf_event_output uses per-CPU nesting protection but ran with preemption enabled when called from cgroup BPF programs, so two tasks can end up sharing one perf_sample_data buffer. The reported result is a kernel NULL-pointer dereference and crash, hit in production by Cilium's cgroup socket programs. On a Kubernetes GPU node this is an unplanned host crash under ordinary CNI operation, killing every pod on the node including long-running training jobs with no checkpoint window.

Who can reach it

Local, triggered through cgroup-attached BPF programs (such as a CNI's connect/sockaddr hooks) - attaching them requires privilege, but once an eBPF dataplane is installed any pod's socket activity can drive the path. No authentication beyond running a workload on the node.

What to do

Update to a stable kernel containing the preempt-disable fix (commits 063c9ce8e74e, 3048cb0dc0cc, 36dd8ca330b7, c81bdf8f9f2b, d62cc390c2e9) and reboot each node. No runtime mitigation other than removing the cgroup BPF programs that call bpf_event_output, which generally means disabling the CNI feature that installs them.

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.