Add the tame "exec" request. This allows processes which request
authorderaadt <deraadt@openbsd.org>
Wed, 7 Oct 2015 03:47:43 +0000 (03:47 +0000)
committerderaadt <deraadt@openbsd.org>
Wed, 7 Oct 2015 03:47:43 +0000 (03:47 +0000)
commit609289ba7a225931e30aa26d51922ca9dc1c6d91
treeb45d121a7c0a4de5a344671e0ae13618a4752e0b
parentf66515a4f4169a0418f77e7642b5703eebe055be
Add the tame "exec" request.  This allows processes which request
"exec" to call execve(2), potentially fork(2) beforehands if they
asked for "proc".  Calling execve is what "shells" (ksh, tmux, etc)
have as their primary purpose.  But meantime, if such a shell has a
nasty bug, we want to mitigate the process from opening a socket or
calling 100+ other system calls.  Unfortunately silver bullets are in
short supply, so if our goal is to stay in a POSIX-y environment, we
have to let shells call execve().  POSIX ate the world, so choices do
we all have?
Warning for many: silver bullets are even more rare in other OS
ecosystems, so please accept this as a narrow lowering of the bar in a
very raised environment.
Commited from a machine running tame "proc exec" ksh, make, etc.
sys/kern/kern_exec.c
sys/kern/kern_exit.c
sys/kern/kern_tame.c
sys/sys/tame.h