tty: add TIOCGPTPEER ioctl
authorAleksa Sarai <asarai@suse.de>
Sat, 3 Jun 2017 14:15:15 +0000 (00:15 +1000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 9 Jun 2017 10:27:54 +0000 (12:27 +0200)
commit54ebbfb1603415d9953c150535850d30609ef077
treeedf8b41d6f34528641d97f2e5ee1fad5ea2df9c6
parent5f0f187fd0cc755cfa7d51b50f68a16fca41c813
tty: add TIOCGPTPEER ioctl

When opening the slave end of a PTY, it is not possible for userspace to
safely ensure that /dev/pts/$num is actually a slave (in cases where the
mount namespace in which devpts was mounted is controlled by an
untrusted process). In addition, there are several unresolvable
race conditions if userspace were to attempt to detect attacks through
stat(2) and other similar methods [in addition it is not clear how
userspace could detect attacks involving FUSE].

Resolve this by providing an interface for userpace to safely open the
"peer" end of a PTY file descriptor by using the dentry cached by
devpts. Since it is not possible to have an open master PTY without
having its slave exposed in /dev/pts this interface is safe. This
interface currently does not provide a way to get the master pty (since
it is not clear whether such an interface is safe or even useful).

Cc: Christian Brauner <christian.brauner@ubuntu.com>
Cc: Valentin Rothberg <vrothberg@suse.com>
Signed-off-by: Aleksa Sarai <asarai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/alpha/include/uapi/asm/ioctls.h
arch/mips/include/uapi/asm/ioctls.h
arch/parisc/include/uapi/asm/ioctls.h
arch/powerpc/include/uapi/asm/ioctls.h
arch/sh/include/uapi/asm/ioctls.h
arch/sparc/include/uapi/asm/ioctls.h
arch/xtensa/include/uapi/asm/ioctls.h
drivers/tty/pty.c
include/uapi/asm-generic/ioctls.h