mirror of
				https://github.com/torvalds/linux.git
				synced 2025-10-31 16:48:26 +02:00 
			
		
		
		
	lockdown: Lock down /proc/kcore
Disallow access to /proc/kcore when the kernel is locked down to prevent access to cryptographic data. This is limited to lockdown confidentiality mode and is still permitted in integrity mode. Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Matthew Garrett <mjg59@google.com> Reviewed-by: Kees Cook <keescook@chromium.org> Signed-off-by: James Morris <jmorris@namei.org>
This commit is contained in:
		
							parent
							
								
									906357f77a
								
							
						
					
					
						commit
						02e935bf5b
					
				
					 3 changed files with 7 additions and 0 deletions
				
			
		|  | @ -31,6 +31,7 @@ | |||
| #include <linux/ioport.h> | ||||
| #include <linux/memory.h> | ||||
| #include <linux/sched/task.h> | ||||
| #include <linux/security.h> | ||||
| #include <asm/sections.h> | ||||
| #include "internal.h" | ||||
| 
 | ||||
|  | @ -545,6 +546,10 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos) | |||
| 
 | ||||
| static int open_kcore(struct inode *inode, struct file *filp) | ||||
| { | ||||
| 	int ret = security_locked_down(LOCKDOWN_KCORE); | ||||
| 
 | ||||
| 	if (ret) | ||||
| 		return ret; | ||||
| 	if (!capable(CAP_SYS_RAWIO)) | ||||
| 		return -EPERM; | ||||
| 
 | ||||
|  |  | |||
|  | @ -116,6 +116,7 @@ enum lockdown_reason { | |||
| 	LOCKDOWN_MODULE_PARAMETERS, | ||||
| 	LOCKDOWN_MMIOTRACE, | ||||
| 	LOCKDOWN_INTEGRITY_MAX, | ||||
| 	LOCKDOWN_KCORE, | ||||
| 	LOCKDOWN_CONFIDENTIALITY_MAX, | ||||
| }; | ||||
| 
 | ||||
|  |  | |||
|  | @ -31,6 +31,7 @@ static char *lockdown_reasons[LOCKDOWN_CONFIDENTIALITY_MAX+1] = { | |||
| 	[LOCKDOWN_MODULE_PARAMETERS] = "unsafe module parameters", | ||||
| 	[LOCKDOWN_MMIOTRACE] = "unsafe mmio", | ||||
| 	[LOCKDOWN_INTEGRITY_MAX] = "integrity", | ||||
| 	[LOCKDOWN_KCORE] = "/proc/kcore access", | ||||
| 	[LOCKDOWN_CONFIDENTIALITY_MAX] = "confidentiality", | ||||
| }; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 David Howells
						David Howells