Re: Relax the prohibition of usage fchdir(2) to quit a chroot

"Kamil Rytarowski" <[email protected]>
Newsgroups gmane.os.netbsd.devel.security
Message-ID <trinity-d72014bc-f8b8-4a66-ba7a-b33c878ad7e5-1411330634659@3capp-mailcom-bs09>
Hello all,

Thank you for your answers.

Please let me be more explicit in my use-case. There are two common types of environment when [rpm] --root is used:
1. a system installer,
2. a build machine.

An installer/builder creates a certain directory, say: /mnt/chroot. Then it takes packages one after another from say /mnt/arsenal. It untarballs one file after another, (say ammo1.pkg, ammo2.pkg, ammo3.pkg) files and then chroots(2) inside /mnt/chroot to run scriptlets embedded in the .pkg files, with scripts for say postinst procedure. After finishing the scriptlets it quits /mnt/chroot and takes next file doing the same.


There are two primary design issues with it.

The first design issue is with quitting the chroot environment. It's walk-aroundable with e.g. fork(2) and letting the subprocess die after doing its job.

The second one more several is letting a subprocess to do nasty things, that shall be forbidden in a secured environment, most notably is playing with mknod(8).


Now please assume that ammo1.pkg embeds (as a /bin/sh script): mknod /dev/console -and-some-standard-parameters-here

And now using fork(2) to go inside the chroot environment and then use mknod gives head-ache. Solving it with grabbing scriptlets and piping commands to execute by the master process introduces problems with path translation, and here are comes non-trivial use-cases... analyzing them is left for a reader. Trying to solve this with grabbing syscalls of the child and translating paths is non-trivial.. etc. (I need to do it natively, without fakechroot).

Well back to the problem. I'm strongly for enforcing all possible chroot restrictions... but letting a "backdoor" (disabling the restrictions) on demand. There is a general design issue that gives a head-ache -- I would whisper a Unix design issue -- but actually this hack does the job very well and it's deployed in number of Unix-like systems around.

All chroot restrictions are swappable in runtime with grsecurity on the Linux platform.

BTW. LKM solution seems interesting, but how could it work?
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.