mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-03 18:20:25 +02:00 
			
		
		
		
	security: protect from stack expantion into low vm addresses
Add security checks to make sure we are not attempting to expand the stack into memory protected by mmap_min_addr Signed-off-by: Eric Paris <eparis@redhat.com> Signed-off-by: James Morris <jmorris@namei.org>
This commit is contained in:
		
							parent
							
								
									ab5a91a836
								
							
						
					
					
						commit
						8869477a49
					
				
					 1 changed files with 6 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -1615,6 +1615,12 @@ static inline int expand_downwards(struct vm_area_struct *vma,
 | 
			
		|||
	 */
 | 
			
		||||
	if (unlikely(anon_vma_prepare(vma)))
 | 
			
		||||
		return -ENOMEM;
 | 
			
		||||
 | 
			
		||||
	address &= PAGE_MASK;
 | 
			
		||||
	error = security_file_mmap(0, 0, 0, 0, address, 1);
 | 
			
		||||
	if (error)
 | 
			
		||||
		return error;
 | 
			
		||||
 | 
			
		||||
	anon_vma_lock(vma);
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
| 
						 | 
				
			
			@ -1622,8 +1628,6 @@ static inline int expand_downwards(struct vm_area_struct *vma,
 | 
			
		|||
	 * is required to hold the mmap_sem in read mode.  We need the
 | 
			
		||||
	 * anon_vma lock to serialize against concurrent expand_stacks.
 | 
			
		||||
	 */
 | 
			
		||||
	address &= PAGE_MASK;
 | 
			
		||||
	error = 0;
 | 
			
		||||
 | 
			
		||||
	/* Somebody else might have raced and expanded it already */
 | 
			
		||||
	if (address < vma->vm_start) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue