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

Anastasios Papagiannis posted 3 patches 1 month, 2 weeks ago
There is a newer version of this series
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
[PATCH bpf-next 0/3] bpf: Add user memory access kfuncs for linux_binprm
Posted by Anastasios Papagiannis 1 month, 2 weeks ago
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