[PATCH v2 0/2] tty: Allow TIOCSTI to be disabled
From: Kees Cook
Date: Sat Oct 15 2022 - 02:45:42 EST
Hi,
v2: add missed "static" to new sysctl var; add missed "extern" to old var. :)
v1: https://lore.kernel.org/lkml/20221015041352.never.966-kees@xxxxxxxxxx/
This is so very long over-due. We just need to do this and put an end
to this legacy operation.
Repeating the commit log from patch 2:
TIOCSTI continues its long history of being used in privilege escalation
attacks[1]. Prior attempts to provide a mechanism to disable this have
devolved into discussions around creating full-blown LSMs to provide
arbitrary ioctl filtering, which is hugely over-engineered -- only
TIOCSTI is being used this way. 3 years ago OpenBSD entirely removed
TIOCSTI[2], Android has had it filtered for longer[3], and the tools that
had historically used TIOCSTI either do not need it, are not commonly
built with it, or have had its use removed.
Provide a simple CONFIG and global sysctl to disable this for the system
builders who have wanted this functionality for literally decades now,
much like the ldisc_autoload CONFIG and sysctl.
[1] https://lore.kernel.org/linux-hardening/Y0m9l52AKmw6Yxi1@hostpad
[2] https://undeadly.org/cgi?action=article;sid=20170701132619
[3] https://lore.kernel.org/lkml/CAFJ0LnFGRuEEn1tCLhoki8ZyWrKfktbF+rwwN7WzyC_kBFoQVA@xxxxxxxxxxxxxx/
Thanks,
-Kees
Kees Cook (2):
tty: Move sysctl setup into "core" tty logic
tty: Allow TIOCSTI to be disabled
drivers/tty/Kconfig | 19 +++++++++++++++++
drivers/tty/tty.h | 2 +-
drivers/tty/tty_io.c | 47 +++++++++++++++++++++++++++++++++++++++--
drivers/tty/tty_ldisc.c | 38 +--------------------------------
4 files changed, 66 insertions(+), 40 deletions(-)
--
2.34.1