]> git.proxmox.com Git - pve-container.git/commit
mountpoint_mount: disallow symlinks in bind mounts
authorWolfgang Bumiller <w.bumiller@proxmox.com>
Thu, 17 Sep 2015 11:06:59 +0000 (13:06 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Thu, 17 Sep 2015 11:24:12 +0000 (13:24 +0200)
commit2cfae16ee8cac087344774ddf1e6d285d84bd0c0
treeee98edc72872c0b021770be2be381774e01cc81c
parent3c9dbfa9d2168eb5def47f680e79079bbd220de9
mountpoint_mount: disallow symlinks in bind mounts

symlinks in mount paths can cause security issues
assume the following setup:
mp1: local:X,mp=/disk2
mp2: /mnt/shared,mp=/shared
Now the container boots and executes this sequence:
ct:# ln -s /var/lib/lxc/$VMID/etc /disk2/shared
ct:# umount /disk2
ct:# ln -s /mnt /disk2
ct:# umount /shared
ct:# rmdir /shared
ct:# ln -s /etc /shared
ct:# poweroff
Now the owner waits for a stop-mode backup of the container
to be created:
mp1 will be mounted to the host's /mnt because the
container's /disk2 is a symlink to /mnt.
mp2 will now access the replaced /mnt/shared, which is a
symlink to the container's /etc, and mount that over the
container's /shared, which is a symlink to the host's /etc.
Now until the backup is finished the container's owner could
log into the host via ssh using his container's user
credentials.

We'll also unshare the mount namespace when performing such
backups, but it's still a bad idea to allow symlinks
modifying mount container paths.
src/PVE/LXC.pm