GPU VulnDB

Database/Kernel, userspace & hypervisor

Linux kernel perf: throttling a group with disabled members calls PMU start/stop with hw.idx == -1

CVSS 7.8CVE-2025-39821Kernel, userspace & hypervisorcurated

Impact

When a perf event group is throttled, perf_event_throttle_group() walked every sibling including ones left in PERF_EVENT_STATE_OFF, whose hw.idx is still -1 because they were never scheduled onto the PMU. The driver then uses that negative index as a shift exponent when writing PMU enable registers, which is undefined behaviour and reported by UBSAN as shift-out-of-bounds; reproduced by syzkaller on both arm64 and x86-64. The consequence is a write derived from an out-of-range counter index into hardware PMU control registers from an unprivileged-reachable path, plus log spam on any kernel built with UBSAN. This matters on GPU nodes because profiling is routinely enabled for tenants - perf_event_paranoid is commonly loosened so users can profile their own training jobs - and a crafted event group is then something a tenant can construct. The record documents undefined behaviour and the UBSAN report, not a demonstrated privilege escalation.

Who can reach it

Local user able to call perf_event_open and create an event group with an aggressive sample period plus a disabled child event. No root needed where kernel.perf_event_paranoid permits unprivileged or per-task profiling; on a host left at the restrictive default the path needs CAP_PERFMON. Reachable from inside a container if the perf syscall is not blocked by seccomp.

What to do

Apply the stable kernel commits in the record, which move the state check into perf_event_throttle()/perf_event_unthrottle() so inactive events are skipped. That is a kernel update: drain the node and reboot it. Until then, raising kernel.perf_event_paranoid back to 2 (or 3 where supported) and blocking perf_event_open in the container seccomp profile removes tenant reach, at the cost of taking profiling away from your users. No fixed release version is stated in the record beyond the listed commits.

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.