mirror of
https://github.com/PowerShell/openssh-portable.git
synced 2025-07-26 23:34:55 +02:00
upstream commit
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
This commit is contained in:
parent
c5f7c0843c
commit
c61b42f267
@ -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>
|
* Copyright (c) 2011 Damien Miller <djm@mindrot.org>
|
||||||
*
|
*
|
||||||
@ -15,10 +15,6 @@
|
|||||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "includes.h"
|
|
||||||
|
|
||||||
#ifdef SANDBOX_SYSTRACE
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
#include <sys/syscall.h>
|
#include <sys/syscall.h>
|
||||||
@ -50,9 +46,17 @@ struct sandbox_policy {
|
|||||||
|
|
||||||
/* Permitted syscalls in preauth. Unlisted syscalls get SYSTR_POLICY_KILL */
|
/* Permitted syscalls in preauth. Unlisted syscalls get SYSTR_POLICY_KILL */
|
||||||
static const struct sandbox_policy preauth_policy[] = {
|
static const struct sandbox_policy preauth_policy[] = {
|
||||||
{ SYS_clock_gettime, SYSTR_POLICY_PERMIT },
|
|
||||||
{ SYS_close, SYSTR_POLICY_PERMIT },
|
|
||||||
{ SYS_exit, 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
|
#ifdef SYS_getentropy
|
||||||
/* OpenBSD 5.6 and newer use getentropy(2) to seed arc4random(3). */
|
/* OpenBSD 5.6 and newer use getentropy(2) to seed arc4random(3). */
|
||||||
{ SYS_getentropy, SYSTR_POLICY_PERMIT },
|
{ 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. */
|
/* Previous releases used sysctl(3)'s kern.arnd variable. */
|
||||||
{ SYS___sysctl, SYSTR_POLICY_PERMIT },
|
{ SYS___sysctl, SYSTR_POLICY_PERMIT },
|
||||||
#endif
|
#endif
|
||||||
{ SYS_getpid, SYSTR_POLICY_PERMIT },
|
{ SYS_sendsyslog, SYSTR_POLICY_PERMIT },
|
||||||
{ SYS_getpgid, SYSTR_POLICY_PERMIT },
|
|
||||||
{ SYS_gettimeofday, SYSTR_POLICY_PERMIT },
|
|
||||||
#ifdef SYS_kbind
|
|
||||||
{ SYS_kbind, SYSTR_POLICY_PERMIT },
|
|
||||||
#endif
|
|
||||||
{ SYS_madvise, SYSTR_POLICY_PERMIT },
|
{ SYS_madvise, SYSTR_POLICY_PERMIT },
|
||||||
{ SYS_mmap, SYSTR_POLICY_PERMIT },
|
{ SYS_mmap, SYSTR_POLICY_PERMIT },
|
||||||
{ SYS_mprotect, SYSTR_POLICY_PERMIT },
|
{ SYS_mprotect, SYSTR_POLICY_PERMIT },
|
||||||
{ SYS_mquery, SYSTR_POLICY_PERMIT },
|
{ SYS_mquery, SYSTR_POLICY_PERMIT },
|
||||||
{ SYS_munmap, SYSTR_POLICY_PERMIT },
|
{ SYS_munmap, SYSTR_POLICY_PERMIT },
|
||||||
{ SYS_open, SYSTR_POLICY_NEVER },
|
|
||||||
{ SYS_poll, SYSTR_POLICY_PERMIT },
|
{ SYS_poll, SYSTR_POLICY_PERMIT },
|
||||||
{ SYS_read, SYSTR_POLICY_PERMIT },
|
|
||||||
{ SYS_select, SYSTR_POLICY_PERMIT },
|
{ SYS_select, SYSTR_POLICY_PERMIT },
|
||||||
#ifdef SYS_sendsyslog
|
{ SYS_read, SYSTR_POLICY_PERMIT },
|
||||||
{ SYS_sendsyslog, SYSTR_POLICY_PERMIT },
|
|
||||||
#endif
|
|
||||||
{ SYS_shutdown, SYSTR_POLICY_PERMIT },
|
|
||||||
{ SYS_sigprocmask, SYSTR_POLICY_PERMIT },
|
|
||||||
{ SYS_write, 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 }
|
{ -1, -1 }
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -91,7 +91,7 @@ struct ssh_sandbox {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct ssh_sandbox *
|
struct ssh_sandbox *
|
||||||
ssh_sandbox_init(struct monitor *monitor)
|
ssh_sandbox_init(void)
|
||||||
{
|
{
|
||||||
struct ssh_sandbox *box;
|
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);
|
ssh_sandbox_parent(box, child_pid, preauth_policy);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* SANDBOX_SYSTRACE */
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user