CVE Catalog

CVE-2026-98376

Unknown
Published: Translated: NVD NIST

Summary

In the Linux kernel, the metadata comparison for percpu array BPF maps used as inner maps does not check max_entries. Replacing an inner map with a smaller one bypasses validation, and the index_mask inlined by the JIT can cause an out-of-bounds access to the pptrs[] array.

Risk Assessment

An out-of-bounds memory access in the kernel can lead to a kernel panic (DoS) or potentially privilege escalation by a local attacker able to manipulate BPF maps.

Recommendation

Update the Linux kernel to a version where percpu_array_map_ops.map_meta_equal points to array_map_meta_equal(), enforcing max_entries equality. Restrict the ability to create and modify BPF maps to trusted users.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: bpf: Use array_map_meta_equal for percpu array inner map replacement percpu_array_map_ops.map_meta_equal points to the generic bpf_map_meta_equal(), which does not compare max_entries. When a percpu array serves as an inner map, replacing it with one that has fewer max_entries bypasses the check. Since percpu_array_map_gen_lookup() inlines the original template's index_mask as a JIT immediate, a lookup on the replacement map can access pptrs[] out of bounds. Point percpu_array_map_ops.map_meta_equal to array_map_meta_equal(), which already enforces the max_entries equality check. Add a selftest to verify that replacing a percpu array inner map with a differently-sized one is rejected.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS