Have the spawn interface for the process manager require cap_procmng.
authorRazvan Damachi <razvan.damachi@gmail.com>
Mon, 26 Jun 2017 12:07:22 +0000 (14:07 +0200)
committerSimon Gerber <simon.gerber@inf.ethz.ch>
Thu, 31 Aug 2017 14:35:08 +0000 (16:35 +0200)
commit5c4c481f2ee9b7f54330220ce8aa9bccee19e797
tree20244673f848c74fd5126a168f0d4d612db1dafa
parent5b4fdc259c92c054220720c93d23031468631783
Have the spawn interface for the process manager require cap_procmng.

The process manager now sends cap_procmng with spawn requests. Spawnd then
identifies the capability and only proceeds with obliging the request if the
latter is indeed of ObjType_ProcessManager.

The idea behind this change is that, even if spawnd does not register with the
nameservice anymore (hence its iref is not publicly retrievable), a malicious
domain could still attempt to bypass process management spawn validation by
brute-force sending spawn requests to a range of irefs. If one of those irefs
happened to belong to a spawnd, then the latter would assume the spawn request
to be valid. Having the spawn API require cap_procmng ensures that only
requests issued by the process manager and entities it trusts will be obliged.

Signed-off-by: Razvan Damachi <razvan.damachi@gmail.com>
errors/errno.fugu
if/spawn.if
usr/proc_mgmt/service.c
usr/spawnd/service.c