[PATCH bpf-next 0/3] bpf: Add user memory access kfuncs for linux_binprm

From: Anastasios Papagiannis

Date: Wed Aug 12 2026 - 07:26:20 EST


During exec, argument and environment strings are copied into the new
address space held by struct linux_binprm before that address space is
installed on the task_struct. Existing eBPF user memory helpers only
support reading from the old address space (i.e. current process)
and for this reason programs cannot access these strings from the
bprm_check_security LSM hook.

This series adds two sleepable BPF kfuncs for copying bytes or
NUL-terminated strings from the address space held by struct linux_binprm.
This allows BPF LSM programs to inspect exec arguments before allowing
the exec to continue.

The series also adds selftests covering both kfuncs.

Anastasios Papagiannis (3):
mm: Add copy_remote_mm_str()
bpf: Add user memory access kfuncs for linux_binprm
selftests/bpf: Test linux_binprm user memory kfuncs

fs/bpf_fs_kfuncs.c | 112 ++++++++++++++++++
include/linux/mm.h | 2 +
mm/memory.c | 25 +++-
mm/nommu.c | 25 +++-
.../bpf/prog_tests/copy_from_user_bprm.c | 52 ++++++++
.../selftests/bpf/progs/copy_from_user_bprm.c | 74 ++++++++++++
6 files changed, 288 insertions(+), 2 deletions(-)
create mode 100644 tools/testing/selftests/bpf/prog_tests/copy_from_user_bprm.c
create mode 100644 tools/testing/selftests/bpf/progs/copy_from_user_bprm.c


base-commit: 07cb86aa50816b070b99c89bf948762ef035a1f2
--
2.55.0