Deny file mode changes outside of specified paths in sandbox
This commit is contained in:
		
							parent
							
								
									6a5bcb339d
								
							
						
					
					
						commit
						ab46965d95
					
				@ -37,6 +37,14 @@ class Sandbox
 | 
			
		||||
  def allow_write(path:, type: :literal)
 | 
			
		||||
    add_rule allow: true, operation: "file-write*", filter: path_filter(path, type)
 | 
			
		||||
    add_rule allow: true, operation: "file-write-setugid", filter: path_filter(path, type)
 | 
			
		||||
 | 
			
		||||
    file_write_mode_path = if Pathname(path).directory?
 | 
			
		||||
      "#{path}/*"
 | 
			
		||||
    else
 | 
			
		||||
      path
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    add_rule allow: true, operation: "file-write-mode", filter: path_filter(file_write_mode_path, type)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  sig { params(path: T.any(String, Pathname), type: Symbol).void }
 | 
			
		||||
@ -289,6 +297,7 @@ class Sandbox
 | 
			
		||||
          (regex #"^/dev/tty[a-z0-9]*$")
 | 
			
		||||
          )
 | 
			
		||||
      (deny file-write*) ; deny non-allowlist file write operations
 | 
			
		||||
      (deny file-write-mode) ; deny non-allowlist file write mode operations
 | 
			
		||||
      (allow process-exec
 | 
			
		||||
          (literal "/bin/ps")
 | 
			
		||||
          (with no-sandbox)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user