mirror of
				https://github.com/minio/minio.git
				synced 2025-10-29 15:55:00 -04:00 
			
		
		
		
	fix: enforce deny on DeleteVersionAction (#16409)
This commit is contained in:
		
							parent
							
								
									b22b39de96
								
							
						
					
					
						commit
						b204c2dbec
					
				| @ -371,6 +371,7 @@ func authorizeRequest(ctx context.Context, r *http.Request, action policy.Action | |||||||
| 	region := reqInfo.Region | 	region := reqInfo.Region | ||||||
| 	bucket := reqInfo.BucketName | 	bucket := reqInfo.BucketName | ||||||
| 	object := reqInfo.ObjectName | 	object := reqInfo.ObjectName | ||||||
|  | 	versionID := reqInfo.VersionID | ||||||
| 
 | 
 | ||||||
| 	if action != policy.ListAllMyBucketsAction && cred.AccessKey == "" { | 	if action != policy.ListAllMyBucketsAction && cred.AccessKey == "" { | ||||||
| 		// Anonymous checks are not meant for ListAllBuckets action | 		// Anonymous checks are not meant for ListAllBuckets action | ||||||
| @ -404,7 +405,21 @@ func authorizeRequest(ctx context.Context, r *http.Request, action policy.Action | |||||||
| 
 | 
 | ||||||
| 		return ErrAccessDenied | 		return ErrAccessDenied | ||||||
| 	} | 	} | ||||||
| 
 | 	if action == policy.DeleteObjectAction && versionID != "" { | ||||||
|  | 		if !globalIAMSys.IsAllowed(iampolicy.Args{ | ||||||
|  | 			AccountName:     cred.AccessKey, | ||||||
|  | 			Groups:          cred.Groups, | ||||||
|  | 			Action:          iampolicy.Action(policy.DeleteObjectVersionAction), | ||||||
|  | 			BucketName:      bucket, | ||||||
|  | 			ConditionValues: getConditionValues(r, "", cred.AccessKey, cred.Claims), | ||||||
|  | 			ObjectName:      object, | ||||||
|  | 			IsOwner:         owner, | ||||||
|  | 			Claims:          cred.Claims, | ||||||
|  | 			DenyOnly:        true, | ||||||
|  | 		}) { // Request is not allowed if Deny action on DeleteObjectVersionAction | ||||||
|  | 			return ErrAccessDenied | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
| 	if globalIAMSys.IsAllowed(iampolicy.Args{ | 	if globalIAMSys.IsAllowed(iampolicy.Args{ | ||||||
| 		AccountName:     cred.AccessKey, | 		AccountName:     cred.AccessKey, | ||||||
| 		Groups:          cred.Groups, | 		Groups:          cred.Groups, | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user