mirror of
https://github.com/LineageOS/android_kernel_fxtec_sm6115.git
synced 2026-08-18 10:51:49 +00:00
UPSTREAM: proc: allow access in init userns for map_files with CAP_CHECKPOINT_RESTORE
Opening files in /proc/pid/map_files when the current user is CAP_CHECKPOINT_RESTORE capable in the root namespace is useful for checkpointing and restoring to recover files that are unreachable via the file system such as deleted files, or memfd files. Change-Id: I6ec3846f81a5208b66ef41e00229b7535e1e6668 Signed-off-by: Adrian Reber <areber@redhat.com> Signed-off-by: Nicolas Viennot <Nicolas.Viennot@twosigma.com> Reviewed-by: Cyrill Gorcunov <gorcunov@gmail.com> Reviewed-by: Serge Hallyn <serge@hallyn.com> Link: https://lore.kernel.org/r/20200719100418.2112740-5-areber@redhat.com Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com> Signed-off-by: ralph950412 <ralph950412@gmail.com> Signed-off-by: rsuntk <rissu.ntk@gmail.com>
This commit is contained in:
committed by
Edwin Moquete
parent
b09f7c1f88
commit
b00e9baa00
@ -2309,16 +2309,16 @@ struct map_files_info {
|
||||
};
|
||||
|
||||
/*
|
||||
* Only allow CAP_SYS_ADMIN to follow the links, due to concerns about how the
|
||||
* symlinks may be used to bypass permissions on ancestor directories in the
|
||||
* path to the file in question.
|
||||
* Only allow CAP_SYS_ADMIN and CAP_CHECKPOINT_RESTORE to follow the links, due
|
||||
* to concerns about how the symlinks may be used to bypass permissions on
|
||||
* ancestor directories in the path to the file in question.
|
||||
*/
|
||||
static const char *
|
||||
proc_map_files_get_link(struct dentry *dentry,
|
||||
struct inode *inode,
|
||||
struct delayed_call *done)
|
||||
{
|
||||
if (!capable(CAP_SYS_ADMIN))
|
||||
if (!checkpoint_restore_ns_capable(&init_user_ns))
|
||||
return ERR_PTR(-EPERM);
|
||||
|
||||
return proc_pid_get_link(dentry, inode, done);
|
||||
|
||||
Reference in New Issue
Block a user