]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream commit
authorderaadt@openbsd.org <deraadt@openbsd.org>
Fri, 2 Oct 2015 01:39:26 +0000 (01:39 +0000)
committerDamien Miller <djm@mindrot.org>
Tue, 6 Oct 2015 01:24:54 +0000 (12:24 +1100)
re-order system calls in order of risk, ok i'll be
 honest, ordered this way they look like tame... ok djm

Upstream-ID: 42a1e6d251fd8be13c8262bee026059ae6328813

sandbox-systrace.c

index 3830ed16c63e9d56b609ca729e96eeaf9e170282..8ebdb73df4cbaefd44c179b1ae52887ffaa372c6 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: sandbox-systrace.c,v 1.17 2015/07/27 16:29:23 guenther Exp $ */
+/* $OpenBSD: sandbox-systrace.c,v 1.18 2015/10/02 01:39:26 deraadt Exp $ */
 /*
  * Copyright (c) 2011 Damien Miller <djm@mindrot.org>
  *
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#include "includes.h"
-
-#ifdef SANDBOX_SYSTRACE
-
 #include <sys/types.h>
 #include <sys/ioctl.h>
 #include <sys/syscall.h>
@@ -50,9 +46,17 @@ struct sandbox_policy {
 
 /* Permitted syscalls in preauth. Unlisted syscalls get SYSTR_POLICY_KILL */
 static const struct sandbox_policy preauth_policy[] = {
-       { SYS_clock_gettime, SYSTR_POLICY_PERMIT },
-       { SYS_close, SYSTR_POLICY_PERMIT },
        { SYS_exit, SYSTR_POLICY_PERMIT },
+#ifdef SYS_kbind
+       { SYS_kbind, SYSTR_POLICY_PERMIT },
+#endif
+
+       { SYS_getpid, SYSTR_POLICY_PERMIT },
+       { SYS_getpgid, SYSTR_POLICY_PERMIT },
+       { SYS_clock_gettime, SYSTR_POLICY_PERMIT },
+       { SYS_gettimeofday, SYSTR_POLICY_PERMIT },
+       { SYS_sigprocmask, SYSTR_POLICY_PERMIT },
+
 #ifdef SYS_getentropy
        /* OpenBSD 5.6 and newer use getentropy(2) to seed arc4random(3). */
        { SYS_getentropy, SYSTR_POLICY_PERMIT },
@@ -60,27 +64,23 @@ static const struct sandbox_policy preauth_policy[] = {
        /* Previous releases used sysctl(3)'s kern.arnd variable. */
        { SYS___sysctl, SYSTR_POLICY_PERMIT },
 #endif
-       { SYS_getpid, SYSTR_POLICY_PERMIT },
-       { SYS_getpgid, SYSTR_POLICY_PERMIT },
-       { SYS_gettimeofday, SYSTR_POLICY_PERMIT },
-#ifdef SYS_kbind
-       { SYS_kbind, SYSTR_POLICY_PERMIT },
-#endif
+       { SYS_sendsyslog, SYSTR_POLICY_PERMIT },
+
        { SYS_madvise, SYSTR_POLICY_PERMIT },
        { SYS_mmap, SYSTR_POLICY_PERMIT },
        { SYS_mprotect, SYSTR_POLICY_PERMIT },
        { SYS_mquery, SYSTR_POLICY_PERMIT },
        { SYS_munmap, SYSTR_POLICY_PERMIT },
-       { SYS_open, SYSTR_POLICY_NEVER },
+
        { SYS_poll, SYSTR_POLICY_PERMIT },
-       { SYS_read, SYSTR_POLICY_PERMIT },
        { SYS_select, SYSTR_POLICY_PERMIT },
-#ifdef SYS_sendsyslog
-       { SYS_sendsyslog, SYSTR_POLICY_PERMIT },
-#endif
-       { SYS_shutdown, SYSTR_POLICY_PERMIT },
-       { SYS_sigprocmask, SYSTR_POLICY_PERMIT },
+       { SYS_read, SYSTR_POLICY_PERMIT },
        { SYS_write, SYSTR_POLICY_PERMIT },
+       { SYS_shutdown, SYSTR_POLICY_PERMIT },
+       { SYS_close, SYSTR_POLICY_PERMIT },
+
+       { SYS_open, SYSTR_POLICY_NEVER },
+
        { -1, -1 }
 };
 
@@ -91,7 +91,7 @@ struct ssh_sandbox {
 };
 
 struct ssh_sandbox *
-ssh_sandbox_init(struct monitor *monitor)
+ssh_sandbox_init(void)
 {
        struct ssh_sandbox *box;
 
@@ -208,5 +208,3 @@ ssh_sandbox_parent_preauth(struct ssh_sandbox *box, pid_t child_pid)
 {
        ssh_sandbox_parent(box, child_pid, preauth_policy);
 }
-
-#endif /* SANDBOX_SYSTRACE */