Skip to content
This repository was archived by the owner on Jun 11, 2020. It is now read-only.

[18.06 backport] rootfs: umount all procfs and sysfs with --no-pivot#11

Closed
thaJeztah wants to merge 1 commit into
docker-archive:18.06from
thaJeztah:18.06_backport_no_pivot_umount_proc_sys
Closed

[18.06 backport] rootfs: umount all procfs and sysfs with --no-pivot#11
thaJeztah wants to merge 1 commit into
docker-archive:18.06from
thaJeztah:18.06_backport_no_pivot_umount_proc_sys

Conversation

@thaJeztah
Copy link
Copy Markdown
Member

Backport of opencontainers#1962 for 18.06.
cherry-pick was clean; no conflicts


When creating a new user namespace, the kernel doesn't allow to mount
a new procfs or sysfs file system if there is not already one instance
fully visible in the current mount namespace.

When using --no-pivot we were effectively inhibiting this protection
from the kernel, as /proc and /sys from the host are still present in
the container mount namespace.

A container without full access to /proc could then create a new user
namespace, and from there able to mount a fully visible /proc, bypassing
the limitations in the container.

A simple reproducer for this issue is:

unshare -mrfp sh -c "mount -t proc none /proc && echo c > /proc/sysrq-trigger"

Signed-off-by: Giuseppe Scrivano gscrivan@redhat.com
(cherry picked from commit 28a697c)
Signed-off-by: Sebastiaan van Stijn github@gone.nl

When creating a new user namespace, the kernel doesn't allow to mount
a new procfs or sysfs file system if there is not already one instance
fully visible in the current mount namespace.

When using --no-pivot we were effectively inhibiting this protection
from the kernel, as /proc and /sys from the host are still present in
the container mount namespace.

A container without full access to /proc could then create a new user
namespace, and from there able to mount a fully visible /proc, bypassing
the limitations in the container.

A simple reproducer for this issue is:

unshare -mrfp sh -c "mount -t proc none /proc && echo c > /proc/sysrq-trigger"

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
(cherry picked from commit 28a697c)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
@thaJeztah
Copy link
Copy Markdown
Member Author

ping @justincormack @kolyshkin @andrewhsu PTAL

@thaJeztah thaJeztah deleted the 18.06_backport_no_pivot_umount_proc_sys branch March 13, 2021 11:12
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants