Start with Identity
Identity CVE · SAML

CVE-2023-6717Keycloak SAML POST-binding XSS via ACS URL

high
Product: KeycloakVendor: Red HatCWE-79Disclosed: 2024-04-16Status: PatchedProtocol deep diveNVD ↗

What broke

Keycloak's SAML POST-binding flow reflected the Assertion Consumer Service URL without encoding it. Script in that URL ran in the IdP origin. XSS on an IdP login page is a session-theft bug. Fixed in RHSA-2024:1868 with CVE-2023-6787.

Why it matters

Users trust the Keycloak origin. Stealing that session is every federated app. The ACS URL is attacker-influenced by design (it comes from the SP). It must never be reflected raw.

What to do

  • Upgrade Keycloak. Confirm SAML clients still post to the real ACS after the fix.
  • Put a strict CSP on the login theme if you terminate TLS at a proxy that can set one.
  • Review custom login themes. They often reintroduce this class of reflection.

After you patch

A SAML bypass means the service provider accepted an assertion it should have rejected, so anyone who exploited it authenticated as a real user and left a normal-looking log line.

  • Revoke every session issued by the affected service provider, then rotate its session signing keys. Patching stops new forgeries and does nothing about sessions already minted.
  • Audit administrative accounts and group memberships for changes during the exposure window. Signing in as an administrator is the point of this class, and adding a second account is the standard persistence step.
  • Rotate the identity provider signing certificate if the flaw involved signature validation, and confirm the service provider pins the expected certificate rather than trusting anything in the assertion.
  • Check your own implementation for the same class: exact-match comparison on verification results, rejection of unexpected signature algorithms, and audience and recency checks on every assertion. See SAML 2.0 and SAML vs OIDC.

Sources

Last reviewed By SWI Community TeamSuggest a correctionHow we research

Technique

This CVE is an instance of Session cookie theft. A session cookie is a bearer credential that proves nothing beyond possession. Whoever copies it inherits the logged-in session, skipping the password and the MFA challenge that produced it.

Know a primary source we should add, or a patch status that has changed? Email community@startwithidentity.com. See all briefs in the identity CVE catalog, or volunteer as a CVE Analyst.
Compiled from vendor advisories, NVD, CISA KEV, and public research. CVSS figures can disagree across NVD and the CNA. Confirm affected versions against the vendor advisory before you patch. Independent, community-driven analysis. See the disclaimer.