REDHAT-BUG-2350398: Low severity Linux Linux kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved:
seccomp: passthrough uretprobe systemcall without filtering
When attaching uretprobes to processes running inside docker, the attached process is segfaulted when encountering the retprobe.
The reason is that now that uretprobe is a system call the default seccomp filters in docker block it as they only allow a specific set of known syscalls. This is true for other userspace applications which use seccomp to control their syscall surface.
Since uretprobe is a "kernel implementation detail" system call which is not used by userspace application code directly, it is impractical and there's very little point in forcing all userspace applications to explicitly allow it in order to avoid crashing tracked processes.
Pass this systemcall through seccomp without depending on configuration.
Note: uretprobe is currently only x8664 and isn't expected to ever be supported in i386.
[kees: minimized changes for easier backporting, tweaked commit log]
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Configuration
Update the seccomp configuration/profile to explicitly allow the uretprobe system call by passing it through without filtering (so processes tracked by uretprobes do not crash/segfault when the retprobe is encountered).
seccomp (system call filtering) uretpobes/uretpobe system call passthrough = allow (passthrough without filtering) - Configuration
When attaching uretprobes to processes running inside Docker, adjust the container seccomp filters/allowlist to explicitly allow the uretprobe system call (because Docker filters block it when they only allow a known set of syscalls).
Docker seccomp/apparmor filter syscall allowlist = include uretprobe