Commit Briefs

Omar Polo

enforce PR_SET_NO_NEW_PRIVS in the logger process

otherwise landlock will refuse to enable itself and the logger process dies.


Omar Polo

forgot include


Omar Polo

[seccomp] allow ioctl(FIONREAD)

it's needed by bufferevent_read


Omar Polo

refactor landlock

refactor the landlock-related code into something more manageable. The only real difference is that before the logger process would try to landlock itself to "/" without perms, something that landlock doesn't support (now it enables landlock and then restrict itself, which is the correct move.)


Omar Polo

landlock the logger process too

Disallow everything landlock can handle. The logger process doesn't need any fs access (on OpenBSD it runs with pledge("stdio recvfd")).



Omar Polo

landlock the server process

Trying to implement some landlock policies (rules?) where possible. The server process is, of course, the most dangerous process so start with that. The following should be equivalent to the unveil(2) call on OpenBSD: allows only to read files and directories inside the vhost roots. I'm assuming seccomp is enabled so I'm not trying to disallow actions such as LANDLOCK_ACCESS_FS_EXECUTE or LANDLOCK_ACCESS_FS_REMOVE_FILE which require syscalls that are already disallowed. I'm only trying to limit the damage that the currently allowed system calls can do. e.g. since write(2) is allowed, gmid could modify *any* file it has access to; this is now forbidden by landlock. There are still too many #ifdefs for my tastes, but it's still better than the seccomp code.


Omar Polo

typo

Since there was 0 reports in a month can I assume it's not actually used anywhere?


Omar Polo

allow fstat64

used by glibc on aarch64. Found and tested by pine, thanks!


Omar Polo

typo


Omar Polo

style(9)-ify


Omar Polo

typo


Omar Polo

fix seccomp filter for ppc64le

before we matched ppc64le as ppc64 (which is big ending I presume), so the seccomp filter would always kill gmid #4 related


Omar Polo

configure: add --disable-sandbox

Calling `configure' with --disable-sandbox will disable the sandbox support *completely* at compile time. gmid will still complain at compile time and during the startup. Users shouldn't disable the sandbox if possible, but instead report problem upstream so they get fixed (hopefully.) #4 related


Omar Polo

reworked seccomp filter

* SECCOMP_AUDIT_ARCH extended to support more architectures * relax fcntl policy: allow the syscall regardless of the flags * wrap every syscall in a ifdef, and add some (statx, fcntl64, ...) used in x86 Some bits were taken from dhcpcd[0], thanks! #4 related [0]: https://roy.marples.name/git/dhcpcd/blob/HEAD:/src/privsep-linux.c