mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-09-04 20:19:47 +08:00 
			
		
		
		
	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
	
	Block a user
	 David Howells
						David Howells