syscall_user_dispatch: Add PR_SYS_DISPATCH_INCLUSIVE_ON
There are two possible scenarios for syscall filtering:
- having a trusted/allowed range of PCs, and intercepting everything else
- or the opposite: a single untrusted/intercepted range and allowing
everything else (this is relevant for any kind of sandboxing scenario,
or monitoring behavior of a single library)
The current API only allows the former use case due to allowed
range wrap-around check. Add PR_SYS_DISPATCH_INCLUSIVE_ON that
enables the second use case.
Cc: Gabriel Krisman Bertazi <krisman@collabora.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Kees Cook <keescook@chromium.org>
Cc: Gregory Price <gregory.price@memverge.com>
Cc: Marco Elver <elver@google.com>
Cc: linux-kernel@vger.kernel.org
Dmitry Vyukov (3):
selftests: Fix errno checking in syscall_user_dispatch test
syscall_user_dispatch: Add PR_SYS_DISPATCH_INCLUSIVE_ON
selftests: Add tests for PR_SYS_DISPATCH_INCLUSIVE_ON
.../admin-guide/syscall-user-dispatch.rst | 23 +--
include/uapi/linux/prctl.h | 7 +-
kernel/entry/syscall_user_dispatch.c | 36 +++--
tools/include/uapi/linux/prctl.h | 7 +-
.../syscall_user_dispatch/sud_test.c | 140 ++++++++++++------
5 files changed, 146 insertions(+), 67 deletions(-)
base-commit: 4a95bc121ccdaee04c4d72f84dbfa6b880a514b6
--
2.49.0.1143.g0be31eac6b-goog