Linux Kernel BPF Poke Descriptor Array Range Check Vulnerability

Vulnerability

A vulnerability in the Linux kernel's BPF (Berkeley Packet Filter) implementation allows for a slab-out-of-bounds memory access. This issue arises from improper array range checking for poke descriptors, which can be exploited by BPF programs. The vulnerability was reported by Hsin-Wei Hung, who triggered the issue using a customized version of the Syzkaller fuzzer. The flaw exists in the BPF verifier, specifically in the function that handles range checks for map entries. The problem stems from the use of a range representation that can inaccurately include values outside the intended limits, leading to potential memory corruption.

Impact

Exploitation of this vulnerability causes a heap-based buffer overflow, which can lead to arbitrary code execution or memory corruption.

Reproduction

The vulnerability can be reproduced by using a BPF program that pokes into a program array with an index value that is incorrectly validated. This can be done by writing a fuzzer that targets the BPF verifier, such as a customized version of Syzkaller, which can generate BPF programs that trigger the flawed range checking logic.

Remediation

Users can upgrade to the latest stable version of the Linux kernel where this vulnerability has been fixed.

Added: Sep 1, 2025, 7:22 PM
Updated: Sep 1, 2025, 7:22 PM

Vulnerability Rating

Custom Algorithm
spread
9.0
impact
2.5
exploitability
4.3
remediation
7.7
relevance
0.2
threat
4.8
urgency
2.9
incentive
1.7

Our algorithm analyzes dozens of metrics to generate these 8 key vulnerability categories, which are then combined to calculate the overall risk score.