diff options
author | Alexey Dobriyan <adobriyan@gmail.com> | 2020-12-16 05:42:39 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2020-12-16 07:46:15 +0100 |
commit | c6c75deda81344c3a95d1d1f606d5cee109e5d54 (patch) | |
tree | fcb5a5a16b327e37b1a67ee6af70fc1d1518c283 /fs/coredump.c | |
parent | proc: provide details on indirect branch speculation (diff) | |
download | linux-c6c75deda81344c3a95d1d1f606d5cee109e5d54.tar.xz linux-c6c75deda81344c3a95d1d1f606d5cee109e5d54.zip |
proc: fix lookup in /proc/net subdirectories after setns(2)
Commit 1fde6f21d90f ("proc: fix /proc/net/* after setns(2)") only forced
revalidation of regular files under /proc/net/
However, /proc/net/ is unusual in the sense of /proc/net/foo handlers
take netns pointer from parent directory which is old netns.
Steps to reproduce:
(void)open("/proc/net/sctp/snmp", O_RDONLY);
unshare(CLONE_NEWNET);
int fd = open("/proc/net/sctp/snmp", O_RDONLY);
read(fd, &c, 1);
Read will read wrong data from original netns.
Patch forces lookup on every directory under /proc/net .
Link: https://lkml.kernel.org/r/20201205160916.GA109739@localhost.localdomain
Fixes: 1da4d377f943 ("proc: revalidate misc dentries")
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Reported-by: "Rantala, Tommi T. (Nokia - FI/Espoo)" <tommi.t.rantala@nokia.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/coredump.c')
0 files changed, 0 insertions, 0 deletions