Skip to content
This repository has been archived by the owner on Oct 13, 2023. It is now read-only.

Commit

Permalink
Move the syslog syscall to be gated by CAP_SYS_ADMIN or CAP_SYSLOG
Browse files Browse the repository at this point in the history
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 moby#37897

See also https://googleprojectzero.blogspot.com/2018/09/a-cache-invalidation-bug-in-linux.html

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
  • Loading branch information
justincormack committed Sep 27, 2018
1 parent 97dcf6a commit ccd22ff
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 2 deletions.
16 changes: 15 additions & 1 deletion profiles/seccomp/default.json
Original file line number Diff line number Diff line change
Expand Up @@ -329,7 +329,6 @@
"sync_file_range",
"syncfs",
"sysinfo",
"syslog",
"tee",
"tgkill",
"time",
Expand Down Expand Up @@ -561,6 +560,7 @@
"setdomainname",
"sethostname",
"setns",
"syslog",
"umount",
"umount2",
"unshare"
Expand Down Expand Up @@ -762,6 +762,20 @@
]
},
"excludes": {}
},
{
"names": [
"syslog"
],
"action": "SCMP_ACT_ALLOW",
"args": [],
"comment": "",
"includes": {
"caps": [
"CAP_SYSLOG"
]
},
"excludes": {}
}
]
}
12 changes: 11 additions & 1 deletion profiles/seccomp/seccomp_default.go
Original file line number Diff line number Diff line change
Expand Up @@ -322,7 +322,6 @@ func DefaultProfile() *types.Seccomp {
"sync_file_range",
"syncfs",
"sysinfo",
"syslog",
"tee",
"tgkill",
"time",
Expand Down Expand Up @@ -492,6 +491,7 @@ func DefaultProfile() *types.Seccomp {
"setdomainname",
"sethostname",
"setns",
"syslog",
"umount",
"umount2",
"unshare",
Expand Down Expand Up @@ -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{
Expand Down

0 comments on commit ccd22ff

Please sign in to comment.