From 16836e60bc87abb3e9ab16f33c2038931c1d473b Mon Sep 17 00:00:00 2001 From: Justin Cormack Date: Thu, 27 Sep 2018 14:27:05 -0700 Subject: [PATCH] Move the syslog syscall to be gated by CAP_SYS_ADMIN or CAP_SYSLOG This call is what is used to implement `dmesg` to get kernel messages about the host. This can leak substantial information about the host. It is normally available to unprivileged users on the host, unless the sysctl `kernel.dmesg_restrict = 1` is set, but this is not set by standard on the majority of distributions. Blocking this to restrict leaks about the configuration seems correct. Fix #37897 See also https://googleprojectzero.blogspot.com/2018/09/a-cache-invalidation-bug-in-linux.html Signed-off-by: Justin Cormack (cherry picked from commit ccd22ffcc8b564dfc21e7067b5248819d68c56c6) Signed-off-by: Sebastiaan van Stijn --- profiles/seccomp/default.json | 16 +++++++++++++++- profiles/seccomp/seccomp_default.go | 12 +++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/profiles/seccomp/default.json b/profiles/seccomp/default.json index c0f140524e..0d954bb6d0 100755 --- a/profiles/seccomp/default.json +++ b/profiles/seccomp/default.json @@ -329,7 +329,6 @@ "sync_file_range", "syncfs", "sysinfo", - "syslog", "tee", "tgkill", "time", @@ -561,6 +560,7 @@ "setdomainname", "sethostname", "setns", + "syslog", "umount", "umount2", "unshare" @@ -762,6 +762,20 @@ ] }, "excludes": {} + }, + { + "names": [ + "syslog" + ], + "action": "SCMP_ACT_ALLOW", + "args": [], + "comment": "", + "includes": { + "caps": [ + "CAP_SYSLOG" + ] + }, + "excludes": {} } ] } \ No newline at end of file diff --git a/profiles/seccomp/seccomp_default.go b/profiles/seccomp/seccomp_default.go index 25360a1277..60550124da 100644 --- a/profiles/seccomp/seccomp_default.go +++ b/profiles/seccomp/seccomp_default.go @@ -322,7 +322,6 @@ func DefaultProfile() *types.Seccomp { "sync_file_range", "syncfs", "sysinfo", - "syslog", "tee", "tgkill", "time", @@ -492,6 +491,7 @@ func DefaultProfile() *types.Seccomp { "setdomainname", "sethostname", "setns", + "syslog", "umount", "umount2", "unshare", @@ -642,6 +642,16 @@ func DefaultProfile() *types.Seccomp { Caps: []string{"CAP_SYS_NICE"}, }, }, + { + Names: []string{ + "syslog", + }, + Action: types.ActAllow, + Args: []*types.Arg{}, + Includes: types.Filter{ + Caps: []string{"CAP_SYSLOG"}, + }, + }, } return &types.Seccomp{