GPU VulnDB

Database/Kernel, userspace & hypervisor

Linux kernel BPF verifier: JMP32 comparisons against zero mispredicted, allowing unsafe pointer arithmetic

CVSS 7.0CVE-2026-98041Kernel, userspace & hypervisorcurated

Impact

The verifier's is_branch_taken() did not distinguish 32-bit from 64-bit comparisons, so a 'if w1 != 0' test against a pointer whose low 32 bits are zero at runtime was reported as always taken. A program can use that to make the verifier accept a path where a pointer is offset by an attacker-chosen value and then dereferenced - a verifier soundness bug, which is the class that leads to arbitrary kernel read and write. On a GPU node this matters wherever unprivileged BPF is reachable or where a workload holds CAP_BPF: it is a local privilege escalation path off a shared node. Most fleets have unprivileged_bpf_disabled set, which removes the unprivileged path.

Who can reach it

Local user able to load BPF programs - either with unprivileged BPF enabled, or a container granted CAP_BPF/CAP_SYS_ADMIN. Not reachable from the network and not reachable at all where unprivileged BPF is off and no workload holds CAP_BPF.

What to do

Apply the stable kernel fix and reboot each node; drain first, since this needs a kernel update rather than a live patch on most distributions. As an immediate mitigation that costs nothing on a typical GPU fleet, confirm kernel.unprivileged_bpf_disabled=1 and audit which pods are granted CAP_BPF or CAP_SYS_ADMIN.

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.