Re: Connecting to sockets on MNT_READONLY mounts?
From: Andy Lutomirski <luto@amacapital.net>
Date: 2014-05-01 23:57:34
Also in:
linux-fsdevel, lkml
On Thu, May 1, 2014 at 4:51 PM, Al Viro [off-list ref] wrote:
On Thu, May 01, 2014 at 04:00:49PM -0700, Andy Lutomirski wrote:quoted
On Thu, May 1, 2014 at 3:34 PM, Al Viro [off-list ref] wrote:quoted
On Thu, May 01, 2014 at 03:20:00PM -0700, Andy Lutomirski wrote:quoted
Is it supposed to work?Why the hell not? Same as opening a device node on r/o filesystem for write, or doing the same with FIFO.You can't bind a socket on a read-only fs, so I thought it was a fair question. I'll write a patch to add MS_NOIPCCONNECT and MNT_NOIPCCONNECT to block connect on unix sockets and open on fifos. This will be useful for sandboxes that want to prevent sandboxed programs from accessing undesirable parts of the outside world.Sigh... Don't expose those FIFOs et.al. to them, then. mount --bind /dev/null <pathname> as part of setting the sucker up. And if you *are* blindly exposing the host filesystems to them wholesale, sockets and fifos are the least of your problems, even if you do that read-only.
Why? Suppose I bind-mount /usr into a private namespace with nosuid,nodev,ro. How can you use it to attack anything? The only thing I've thought of is to open fifos and connect to sockets. I'm assuming that there's a pid namespace blocking ptrace and such and a network namespace blocking abstract sockets. --Andy