Re: chroot(2) and bind mounts as non-root

From: H. Peter Anvin
Date: Wed Dec 07 2011 - 15:34:45 EST


On 12/07/2011 09:54 AM, Colin Walters wrote:
>
> The historical reason one can't call chroot(2) as non-root is because of
> setuid binaries (hard link a setuid binary into chroot of your choice
> with trojaned libc.so).

No. The historical reason is that it lets anyone escape a chroot jail:

mkdir("jailbreak", 0666);
chroot("jailbreak");

/* Now the cwd is outside the root, and therefore not bound by
it, walk the chain of .. directories until they don't change
anymore */

chroot("."); /* Change the root to the system root */

Oops.

-hpa



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/