diff options
| author | KP Singh <kpsingh@kernel.org> | 2026-02-05 08:07:55 +0100 |
|---|---|---|
| committer | Alexei Starovoitov <ast@kernel.org> | 2026-02-05 08:40:09 -0800 |
| commit | a2c86aa621c22f2a7e26c654f936d65cfff0aa91 (patch) | |
| tree | 5743e526fe86358062ed998ce2a4dfda6af7bed7 /tools/include/linux/align.h | |
| parent | ea1535e28bb3773fc0b3cbd1f3842b808016990c (diff) | |
bpf: Require frozen map for calculating map hash
Currently, bpf_map_get_info_by_fd calculates and caches the hash of the
map regardless of the map's frozen state.
This leads to a TOCTOU bug where userspace can call
BPF_OBJ_GET_INFO_BY_FD to cache the hash and then modify the map
contents before freezing.
Therefore, a trusted loader can be tricked into verifying the stale hash
while loading the modified contents.
Fix this by returning -EPERM if the map is not frozen when the hash is
requested. This ensures the hash is only generated for the final,
immutable state of the map.
Fixes: ea2e6467ac36 ("bpf: Return hashes of maps in BPF_OBJ_GET_INFO_BY_FD")
Reported-by: Toshi Piazza <toshi.piazza@microsoft.com>
Signed-off-by: KP Singh <kpsingh@kernel.org>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/r/20260205070755.695776-1-kpsingh@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'tools/include/linux/align.h')
0 files changed, 0 insertions, 0 deletions
