lockdown: Lock down TIOCSSERIAL
Lock down TIOCSSERIAL as that can be used to change the ioport and irq settings on a serial port. This only appears to be an issue for the serial drivers that use the core serial code. All other drivers seem to either ignore attempts to change port/irq or give an error. Reported-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Matthew Garrett <mjg59@google.com> Reviewed-by: Kees Cook <keescook@chromium.org> cc: Jiri Slaby <jslaby@suse.com> Cc: linux-serial@vger.kernel.org Signed-off-by: James Morris <jmorris@namei.org>
This commit is contained in:
parent
3f19cad3fa
commit
794edf30ee
|
@ -22,6 +22,7 @@
|
|||
#include <linux/serial_core.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/security.h>
|
||||
|
||||
#include <linux/irq.h>
|
||||
#include <linux/uaccess.h>
|
||||
|
@ -862,6 +863,10 @@ static int uart_set_info(struct tty_struct *tty, struct tty_port *port,
|
|||
goto check_and_exit;
|
||||
}
|
||||
|
||||
retval = security_locked_down(LOCKDOWN_TIOCSSERIAL);
|
||||
if (retval && (change_irq || change_port))
|
||||
goto exit;
|
||||
|
||||
/*
|
||||
* Ask the low level driver to verify the settings.
|
||||
*/
|
||||
|
|
|
@ -112,6 +112,7 @@ enum lockdown_reason {
|
|||
LOCKDOWN_MSR,
|
||||
LOCKDOWN_ACPI_TABLES,
|
||||
LOCKDOWN_PCMCIA_CIS,
|
||||
LOCKDOWN_TIOCSSERIAL,
|
||||
LOCKDOWN_INTEGRITY_MAX,
|
||||
LOCKDOWN_CONFIDENTIALITY_MAX,
|
||||
};
|
||||
|
|
|
@ -27,6 +27,7 @@ static char *lockdown_reasons[LOCKDOWN_CONFIDENTIALITY_MAX+1] = {
|
|||
[LOCKDOWN_MSR] = "raw MSR access",
|
||||
[LOCKDOWN_ACPI_TABLES] = "modifying ACPI tables",
|
||||
[LOCKDOWN_PCMCIA_CIS] = "direct PCMCIA CIS storage",
|
||||
[LOCKDOWN_TIOCSSERIAL] = "reconfiguration of serial port IO",
|
||||
[LOCKDOWN_INTEGRITY_MAX] = "integrity",
|
||||
[LOCKDOWN_CONFIDENTIALITY_MAX] = "confidentiality",
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue