summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changes/bug161066
-rw-r--r--src/common/sandbox.c8
2 files changed, 6 insertions, 8 deletions
diff --git a/changes/bug16106 b/changes/bug16106
deleted file mode 100644
index 9142a37e34..0000000000
--- a/changes/bug16106
+++ /dev/null
@@ -1,6 +0,0 @@
- o Minor bugfixes (linux seccomp2 sandbox):
- - Cause a wider variety of unpermitted open() calls to fail with the
- EACCES error when the sandbox is running. This won't enable any
- previously non-working functionality, but it should turn several cases
- from crashes into sandbox warnings. Fixes bug 16106; bugfix on
- 0.2.5.1-alpha.
diff --git a/src/common/sandbox.c b/src/common/sandbox.c
index 043b8bf14f..37f582048c 100644
--- a/src/common/sandbox.c
+++ b/src/common/sandbox.c
@@ -481,14 +481,18 @@ sb_open(scmp_filter_ctx ctx, sandbox_cfg_t *filter)
}
}
- rc = seccomp_rule_add_0(ctx, SCMP_ACT_ERRNO(EACCES), SCMP_SYS(open));
+ rc = seccomp_rule_add_1(ctx, SCMP_ACT_ERRNO(EACCES), SCMP_SYS(open),
+ SCMP_CMP_MASKED(1, O_CLOEXEC|O_NONBLOCK|O_NOCTTY|O_NOFOLLOW,
+ O_RDONLY));
if (rc != 0) {
log_err(LD_BUG,"(Sandbox) failed to add open syscall, received libseccomp "
"error %d", rc);
return rc;
}
- rc = seccomp_rule_add_0(ctx, SCMP_ACT_ERRNO(EACCES), SCMP_SYS(openat));
+ rc = seccomp_rule_add_1(ctx, SCMP_ACT_ERRNO(EACCES), SCMP_SYS(openat),
+ SCMP_CMP_MASKED(2, O_CLOEXEC|O_NONBLOCK|O_NOCTTY|O_NOFOLLOW,
+ O_RDONLY));
if (rc != 0) {
log_err(LD_BUG,"(Sandbox) failed to add openat syscall, received "
"libseccomp error %d", rc);