diff options
Diffstat (limited to 'sandbox-systrace.c')
-rw-r--r-- | sandbox-systrace.c | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/sandbox-systrace.c b/sandbox-systrace.c index 3830ed16c..b4d8d04ca 100644 --- a/sandbox-systrace.c +++ b/sandbox-systrace.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sandbox-systrace.c,v 1.17 2015/07/27 16:29:23 guenther Exp $ */ | 1 | /* $OpenBSD: sandbox-systrace.c,v 1.18 2015/10/02 01:39:26 deraadt Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2011 Damien Miller <djm@mindrot.org> | 3 | * Copyright (c) 2011 Damien Miller <djm@mindrot.org> |
4 | * | 4 | * |
@@ -50,9 +50,17 @@ struct sandbox_policy { | |||
50 | 50 | ||
51 | /* Permitted syscalls in preauth. Unlisted syscalls get SYSTR_POLICY_KILL */ | 51 | /* Permitted syscalls in preauth. Unlisted syscalls get SYSTR_POLICY_KILL */ |
52 | static const struct sandbox_policy preauth_policy[] = { | 52 | static const struct sandbox_policy preauth_policy[] = { |
53 | { SYS_clock_gettime, SYSTR_POLICY_PERMIT }, | ||
54 | { SYS_close, SYSTR_POLICY_PERMIT }, | ||
55 | { SYS_exit, SYSTR_POLICY_PERMIT }, | 53 | { SYS_exit, SYSTR_POLICY_PERMIT }, |
54 | #ifdef SYS_kbind | ||
55 | { SYS_kbind, SYSTR_POLICY_PERMIT }, | ||
56 | #endif | ||
57 | |||
58 | { SYS_getpid, SYSTR_POLICY_PERMIT }, | ||
59 | { SYS_getpgid, SYSTR_POLICY_PERMIT }, | ||
60 | { SYS_clock_gettime, SYSTR_POLICY_PERMIT }, | ||
61 | { SYS_gettimeofday, SYSTR_POLICY_PERMIT }, | ||
62 | { SYS_sigprocmask, SYSTR_POLICY_PERMIT }, | ||
63 | |||
56 | #ifdef SYS_getentropy | 64 | #ifdef SYS_getentropy |
57 | /* OpenBSD 5.6 and newer use getentropy(2) to seed arc4random(3). */ | 65 | /* OpenBSD 5.6 and newer use getentropy(2) to seed arc4random(3). */ |
58 | { SYS_getentropy, SYSTR_POLICY_PERMIT }, | 66 | { SYS_getentropy, SYSTR_POLICY_PERMIT }, |
@@ -60,27 +68,25 @@ static const struct sandbox_policy preauth_policy[] = { | |||
60 | /* Previous releases used sysctl(3)'s kern.arnd variable. */ | 68 | /* Previous releases used sysctl(3)'s kern.arnd variable. */ |
61 | { SYS___sysctl, SYSTR_POLICY_PERMIT }, | 69 | { SYS___sysctl, SYSTR_POLICY_PERMIT }, |
62 | #endif | 70 | #endif |
63 | { SYS_getpid, SYSTR_POLICY_PERMIT }, | 71 | #ifdef SYS_sendsyslog |
64 | { SYS_getpgid, SYSTR_POLICY_PERMIT }, | 72 | { SYS_sendsyslog, SYSTR_POLICY_PERMIT }, |
65 | { SYS_gettimeofday, SYSTR_POLICY_PERMIT }, | ||
66 | #ifdef SYS_kbind | ||
67 | { SYS_kbind, SYSTR_POLICY_PERMIT }, | ||
68 | #endif | 73 | #endif |
74 | |||
69 | { SYS_madvise, SYSTR_POLICY_PERMIT }, | 75 | { SYS_madvise, SYSTR_POLICY_PERMIT }, |
70 | { SYS_mmap, SYSTR_POLICY_PERMIT }, | 76 | { SYS_mmap, SYSTR_POLICY_PERMIT }, |
71 | { SYS_mprotect, SYSTR_POLICY_PERMIT }, | 77 | { SYS_mprotect, SYSTR_POLICY_PERMIT }, |
72 | { SYS_mquery, SYSTR_POLICY_PERMIT }, | 78 | { SYS_mquery, SYSTR_POLICY_PERMIT }, |
73 | { SYS_munmap, SYSTR_POLICY_PERMIT }, | 79 | { SYS_munmap, SYSTR_POLICY_PERMIT }, |
74 | { SYS_open, SYSTR_POLICY_NEVER }, | 80 | |
75 | { SYS_poll, SYSTR_POLICY_PERMIT }, | 81 | { SYS_poll, SYSTR_POLICY_PERMIT }, |
76 | { SYS_read, SYSTR_POLICY_PERMIT }, | ||
77 | { SYS_select, SYSTR_POLICY_PERMIT }, | 82 | { SYS_select, SYSTR_POLICY_PERMIT }, |
78 | #ifdef SYS_sendsyslog | 83 | { SYS_read, SYSTR_POLICY_PERMIT }, |
79 | { SYS_sendsyslog, SYSTR_POLICY_PERMIT }, | ||
80 | #endif | ||
81 | { SYS_shutdown, SYSTR_POLICY_PERMIT }, | ||
82 | { SYS_sigprocmask, SYSTR_POLICY_PERMIT }, | ||
83 | { SYS_write, SYSTR_POLICY_PERMIT }, | 84 | { SYS_write, SYSTR_POLICY_PERMIT }, |
85 | { SYS_shutdown, SYSTR_POLICY_PERMIT }, | ||
86 | { SYS_close, SYSTR_POLICY_PERMIT }, | ||
87 | |||
88 | { SYS_open, SYSTR_POLICY_NEVER }, | ||
89 | |||
84 | { -1, -1 } | 90 | { -1, -1 } |
85 | }; | 91 | }; |
86 | 92 | ||