Database/Kernel, userspace & hypervisor
Linux kernel BPF verifier: variable-offset arithmetic on flow_keys pointers passes verification and reads out of bounds
Impact
check_flow_keys_access() validated only the fixed part of the offset, so a program could add a register-held variable offset to a PTR_TO_FLOW_KEYS pointer and still verify. The published trace shows the resulting load faulting on an unmapped kernel address from inside the BPF dispatcher - an out-of-bounds kernel read that crashes the node, and with a tuned offset reads kernel memory the program should never see. Flow dissector programs are loaded by networking and observability tooling that runs on every node of a GPU cluster. A verifier bypass is worse than an ordinary kernel bug because the verifier is the entire reason loading BPF is considered safe.
Who can reach it
Local user able to load a BPF flow dissector program or run BPF_PROG_TEST_RUN against one - in practice CAP_BPF/CAP_NET_ADMIN or root, including a container granted those capabilities. Not reachable by an unprivileged tenant pod.
What to do
Update to a kernel carrying the fix, which rejects variable-offset arithmetic on flow_keys outright; five stable backport commits are listed. Rolling the kernel means draining and rebooting each node. As an interim mitigation, drop CAP_BPF and CAP_NET_ADMIN from workloads that do not need to load programs.
References
Related entries
- Linux kernel (ksmbd): Use-after-free in ksmbd_tcp_new_connection() - in-kernel SMB serverCVE-2024-26592 · Linux kernel (ksmbd)High
- Linux kernel (drivers/iommu/iommufd): On a partially-failed access attach, iommufd overwrites the xarray id that tracksCVE-2024-26786 · Linux kernel (drivers/iommu/iommufd)High
- Linux kernel (drivers/vfio/pci): A tenant races a DisINTx write to emulated config space against a SET_IRQS ioctl, soCVE-2024-26810 · Linux kernel (drivers/vfio/pci)High
- Linux kernel (drivers/vfio/pci): A tenant holding a passthrough PCI device can make the kernel signal an interruptCVE-2024-26812 · Linux kernel (drivers/vfio/pci)High
- Linux kernel (drivers/gpu/drm): The shared VRAM buddy allocator reports success for a ranged allocation it neverCVE-2024-26911 · Linux kernel (drivers/gpu/drm)High
- Linux i915 GPU kernel driver: A use-after-free in the i915 GPU kernel driver. The general shape is that a GPU object isCVE-2024-26939 · Linux i915 GPU kernel driverHigh
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.