CVE-2026-93174 bpf: Copy per-CPU map value padding in copy_map_value_long()
A local attacker can read stale heap memory from per-CPU BPF map padding, potentially exposing sensitive kernel data.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Local or same network only
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-93174?
CVE-2026-93174 is a vulnerability in Linux, published on 17 Sep 2026. It can only be exploited from the same machine or local network, with no action from the victim.
Official description
In the Linux kernel, the following vulnerability has been resolved:
bpf: Copy per-CPU map value padding in copy_map_value_long()
In kernel, per-CPU map elements are stored with round_up(map->value_size, 8) bytes. On UAPI lookup paths, it copies the rounded size for each CPU into a temporary buffer.
However, copy_map_value_long() passes 'map->value_size' to bpf_obj_memcpy(). When the map has special fields, bpf_obj_memcpy() copies around those fields with memcpy(), and does not copy the tail padding between 'map->value_size' and round_up(map->value_size, 8).
The temporary UAPI lookup buffers are allocated without __GFP_ZERO. As a result, when the per-CPU map's value size is not equal to round_up(map->value_size, 8), UAPI LOOKUP_ELEM and its variants can return stale heap contents from that padding to user space. The same issue applies to bpf_iter for per-CPU maps.
Pass round_up(map->value_size, 8) to bpf_obj_memcpy() from copy_map_value_long(), so per-CPU maps both with and without special fields copy the entire per-CPU slot. Remove the now redundant round_up() from bpf_obj_memcpy()'s long_memcpy path.
Which versions are affected by CVE-2026-93174?
How do I fix CVE-2026-93174?
Apply the vendor's patch.
Is CVE-2026-93174 being exploited?
There is no known exploitation of CVE-2026-93174 in the wild and no public exploit code.
Sources
Also known as AZL-102455, BELL-CVE-2026-93174, DEBIAN-CVE-2026-93174, GHSA-2m7j-g554-hf69, UBUNTU-CVE-2026-93174.