Capsicum and sendto(2)
KAMADA Ken'ichi
kamada at nanohz.org
Wed Jan 22 11:47:15 UTC 2014
At Tue, 21 Jan 2014 12:21:50 -0600, Brooks Davis wrote:
>
> On Tue, Jan 21, 2014 at 10:45:11PM +0900, KAMADA Ken'ichi wrote:
> >
> > What is the intended behavior of sendto() with non-NULL destination
> > when the capability mode is enabled?
> >
> > If the capability mode is *not* enabled, it is checked against
> > CAP_CONNECT in kern_sendit() @ uipc_syscall.c.
> > This matches the explanation in the rights(4) manual page.
> >
> > However, if the capability mode is enabled, it is always
> > rejected in sendit(). Is this intended?
>
> Yes, this is intended. In capabilty mode all access to namespaces is
> restricted including the IP address namespace. You must either connect
> your sockets before entereing capabilty mode or use casper to provide
> connected sockets.
Understood.
The capability mode forbids access to the global name space.
What I was trying to do was applying Capsicum to a packet translator,
which inherently needs to send packets to many addresses.
Maybe I need something analogous to opening a subdirectory in
a filesystem name space, say, a new API to "open" an subnet
before entering capability mode...
Thanks,
Ken
More information about the freebsd-security
mailing list