]> git.baikalelectronics.ru Git - kernel.git/commit
cgroup: Use open-time cgroup namespace for process migration perm checks
authorTejun Heo <tj@kernel.org>
Thu, 6 Jan 2022 21:02:29 +0000 (11:02 -1000)
committerTejun Heo <tj@kernel.org>
Thu, 6 Jan 2022 21:02:29 +0000 (11:02 -1000)
commiteac40dd267cf196b340d8bb842e17799ce6fa4b5
tree62532f6778c74524a9de59cb88971784104506b6
parent4a2aee6a025635ec71205b214367efd4e770c45e
cgroup: Use open-time cgroup namespace for process migration perm checks

cgroup process migration permission checks are performed at write time as
whether a given operation is allowed or not is dependent on the content of
the write - the PID. This currently uses current's cgroup namespace which is
a potential security weakness as it may allow scenarios where a less
privileged process tricks a more privileged one into writing into a fd that
it created.

This patch makes cgroup remember the cgroup namespace at the time of open
and uses it for migration permission checks instad of current's. Note that
this only applies to cgroup2 as cgroup1 doesn't have namespace support.

This also fixes a use-after-free bug on cgroupns reported in

 https://lore.kernel.org/r/00000000000048c15c05d0083397@google.com

Note that backporting this fix also requires the preceding patch.

Reported-by: "Eric W. Biederman" <ebiederm@xmission.com>
Suggested-by: Linus Torvalds <torvalds@linuxfoundation.org>
Cc: Michal Koutný <mkoutny@suse.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Reviewed-by: Michal Koutný <mkoutny@suse.com>
Reported-by: syzbot+50f5cf33a284ce738b62@syzkaller.appspotmail.com
Link: https://lore.kernel.org/r/00000000000048c15c05d0083397@google.com
Fixes: 7e286d0c9309 ("cgroup: implement "nsdelegate" mount option")
Signed-off-by: Tejun Heo <tj@kernel.org>
kernel/cgroup/cgroup-internal.h
kernel/cgroup/cgroup.c