CVE-2024-8698: Keycloak saml core Improper Verification Of SAML Responses Vulnerability

HIGH
Advisory Identifier: GHSA-xgfv-xpx8-qhcr
CVSS 7.7
CWE-347
Published
Advisory Summary

CVE-2024-8698 is a HIGH (CVSS 7.7) improper verification of saml responses vulnerability (CWE-347: Improper Verification of Cryptographic Signature) affecting Keycloak saml core libraries in the Maven ecosystem. The issue involves improper verification of saml responses leading to privilege escalation in keycloak. Remediation is available by upgrading affected packages to version 22.0.13, 24.0.8, 25.0.6.

CVE-2024-8698 at a Glance

CVE Identifier CVE-2024-8698
GHSA Identifier GHSA-xgfv-xpx8-qhcr
Severity HIGH
CVSS v3.1 Base Score 7.7
CWE Classification CWE-347: Improper Verification of Cryptographic Signature
Affected Product Keycloak saml core
Package Ecosystem Maven
Published Date
Last Updated

Security Impact

CVSS: 7.7

The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:L/A:L).

Attack Vector Network (AV:N)
Attack Complexity High (AC:H)
Privileges Required Low (PR:L)
User Interaction None (UI:N)
Scope Changed (S:C)
Confidentiality High (C:H)
Integrity Low (I:L)
Availability Low (A:L)

How to Fix CVE-2024-8698

To remediate this vulnerability, upgrade all affected Keycloak saml core dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

org.keycloak:keycloak-saml-core fixed: 22.0.13
<dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-saml-core</artifactId>
    <version>22.0.13</version>
</dependency>
org.keycloak:keycloak-saml-core fixed: 24.0.8
<dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-saml-core</artifactId>
    <version>24.0.8</version>
</dependency>
org.keycloak:keycloak-saml-core fixed: 25.0.6
<dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-saml-core</artifactId>
    <version>25.0.6</version>
</dependency>
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

mvn dependency:tree -Dincludes=org.keycloak

How to Check if You Are Affected

To determine whether your Java application is affected by CVE-2024-8698, inspect your build dependencies using the Maven Dependency Plugin:

mvn dependency:tree -Dincludes=org.keycloak

Analyze the terminal output to locate any version of Keycloak saml core in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 22.0.13), your application is affected.

Note: The mvn dependency:tree -Dincludes=org.keycloak command inspects the resolved dependency graph declared in your project's POM files; it does not perform automated security scanning or inspect runtime dynamic classpaths. Always verify runtime container classpaths and shaded JARs.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-347: Improper Verification of Cryptographic Signature, where the product does not verify, or incorrectly verifies, the cryptographic signature for data. In Keycloak saml core, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

A flaw exists in the SAML signature validation method within the Keycloak XMLSignatureUtil class. The method incorrectly determines whether a SAML signature is for the full document or only for specific assertions based on the position of the signature in the XML document, rather than the Reference element used to specify the signed element. This flaw allows attackers to create crafted responses that can bypass the validation, potentially leading to privilege escalation or impersonation attacks.

CVE-2024-8698 Affected Keycloak saml core Versions

3 component(s)
Fixed Versions:
22.0.1324.0.825.0.6
Product / Package Ecosystem Affected Versions Fixed Version
org.keycloak:keycloak-saml-core
Maven
< 22.0.13
22.0.13
org.keycloak:keycloak-saml-core
Maven
≥ 23.0.0
< 24.0.8
24.0.8
org.keycloak:keycloak-saml-core
Maven
≥ 25.0.0
< 25.0.6
25.0.6

References

GitHub Advisory / Wiki ADVISORY
https://github.com/keycloak/keycloak/security/advisories/GHSA-xgfv-xpx8-qhcr
NVD — CVE-2024-8698 NVD
https://nvd.nist.gov/vuln/detail/CVE-2024-8698
Keycloak saml core Release RELEASE
https://github.com/keycloak/keycloak/releases/tag/25.0.6
Keycloak saml core Source Repository REPOSITORY
https://github.com/keycloak/keycloak
bugzilla.redhat.com/show_bug.cgi WEB
https://bugzilla.redhat.com/show_bug.cgi?id=2311641
Keycloak saml core Security Information SECURITY
https://access.redhat.com/security/cve/CVE-2024-8698
access.redhat.com/errata/rhsa-2024:88... WEB
https://access.redhat.com/errata/RHSA-2024:8826
access.redhat.com/errata/rhsa-2024:88... WEB
https://access.redhat.com/errata/RHSA-2024:8824
access.redhat.com/errata/rhsa-2024:88... WEB
https://access.redhat.com/errata/RHSA-2024:8823
access.redhat.com/errata/rhsa-2024:68... WEB
https://access.redhat.com/errata/RHSA-2024:6890
access.redhat.com/errata/rhsa-2024:68... WEB
https://access.redhat.com/errata/RHSA-2024:6889
access.redhat.com/errata/rhsa-2024:68... WEB
https://access.redhat.com/errata/RHSA-2024:6888
access.redhat.com/errata/rhsa-2024:68... WEB
https://access.redhat.com/errata/RHSA-2024:6887
access.redhat.com/errata/rhsa-2024:68... WEB
https://access.redhat.com/errata/RHSA-2024:6886
access.redhat.com/errata/rhsa-2024:68... WEB
https://access.redhat.com/errata/RHSA-2024:6882
access.redhat.com/errata/rhsa-2024:68... WEB
https://access.redhat.com/errata/RHSA-2024:6880
access.redhat.com/errata/rhsa-2024:68... WEB
https://access.redhat.com/errata/RHSA-2024:6879
access.redhat.com/errata/rhsa-2024:68... WEB
https://access.redhat.com/errata/RHSA-2024:6878

Frequently Asked Questions

What is CVE-2024-8698?
CVE-2024-8698 is a security vulnerability in Keycloak saml core involving Improper Verification of SAML Responses Leading to Privilege Escalation in Keycloak under CWE-347: Improper Verification of Cryptographic Signature.
Which Keycloak saml core versions are affected?
Affected versions include releases prior to 22.0.13, 24.0.8, 25.0.6 across affected packages: org.keycloak:keycloak-saml-core.
What version fixes CVE-2024-8698?
Upgrading to 22.0.13, 24.0.8, 25.0.6 (or the latest patched release for your respective branch) resolves the vulnerability.
Is keycloak-saml-core affected?
Yes, org.keycloak:keycloak-saml-core is affected in releases prior to 22.0.13, 24.0.8, 25.0.6. Upgrade your dependency to 22.0.13, 24.0.8, 25.0.6 or later.
What is the CVSS score of CVE-2024-8698?
CVE-2024-8698 has a CVSS v3.1 base score of 7.7 (HIGH) with vector string CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:L/A:L.
What CWE is associated with CVE-2024-8698?
CVE-2024-8698 is classified under CWE-347: Improper Verification of Cryptographic Signature (The product does not verify, or incorrectly verifies, the cryptographic signature for data.).
How can I check Maven dependencies for CVE-2024-8698?
Run the dependency tree command: 'mvn dependency:tree -Dincludes=org.keycloak'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-xgfv-xpx8-qhcr",
  "modified" : "2024-12-20T17:48:35Z",
  "published" : "2024-10-14T20:54:52Z",
  "aliases" : [ "CVE-2024-8698" ],
  "summary" : "Improper Verification of SAML Responses Leading to Privilege Escalation in Keycloak",
  "details" : "A flaw exists in the SAML signature validation method within the Keycloak XMLSignatureUtil class. The method incorrectly determines whether a SAML signature is for the full document or only for specific assertions based on the position of the signature in the XML document, rather than the Reference element used to specify the signed element. This flaw allows attackers to create crafted responses that can bypass the validation, potentially leading to privilege escalation or impersonation attacks.",
  "severity" : [ {
    "type" : "CVSS_V3",
    "score" : "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:L/A:L"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "Maven",
      "name" : "org.keycloak:keycloak-saml-core"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "22.0.13"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 22.0.12"
    }
  }, {
    "package" : {
      "ecosystem" : "Maven",
      "name" : "org.keycloak:keycloak-saml-core"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "23.0.0"
      }, {
        "fixed" : "24.0.8"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 24.0.7"
    }
  }, {
    "package" : {
      "ecosystem" : "Maven",
      "name" : "org.keycloak:keycloak-saml-core"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "25.0.0"
      }, {
        "fixed" : "25.0.6"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 25.0.5"
    }
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/keycloak/keycloak/security/advisories/GHSA-xgfv-xpx8-qhcr"
  }, {
    "type" : "ADVISORY",
    "url" : "https://nvd.nist.gov/vuln/detail/CVE-2024-8698"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/keycloak/keycloak/releases/tag/25.0.6"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/keycloak/keycloak"
  }, {
    "type" : "WEB",
    "url" : "https://bugzilla.redhat.com/show_bug.cgi?id=2311641"
  }, {
    "type" : "WEB",
    "url" : "https://access.redhat.com/security/cve/CVE-2024-8698"
  }, {
    "type" : "WEB",
    "url" : "https://access.redhat.com/errata/RHSA-2024:8826"
  }, {
    "type" : "WEB",
    "url" : "https://access.redhat.com/errata/RHSA-2024:8824"
  }, {
    "type" : "WEB",
    "url" : "https://access.redhat.com/errata/RHSA-2024:8823"
  }, {
    "type" : "WEB",
    "url" : "https://access.redhat.com/errata/RHSA-2024:6890"
  }, {
    "type" : "WEB",
    "url" : "https://access.redhat.com/errata/RHSA-2024:6889"
  }, {
    "type" : "WEB",
    "url" : "https://access.redhat.com/errata/RHSA-2024:6888"
  }, {
    "type" : "WEB",
    "url" : "https://access.redhat.com/errata/RHSA-2024:6887"
  }, {
    "type" : "WEB",
    "url" : "https://access.redhat.com/errata/RHSA-2024:6886"
  }, {
    "type" : "WEB",
    "url" : "https://access.redhat.com/errata/RHSA-2024:6882"
  }, {
    "type" : "WEB",
    "url" : "https://access.redhat.com/errata/RHSA-2024:6880"
  }, {
    "type" : "WEB",
    "url" : "https://access.redhat.com/errata/RHSA-2024:6879"
  }, {
    "type" : "WEB",
    "url" : "https://access.redhat.com/errata/RHSA-2024:6878"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-347" ],
    "severity" : "HIGH",
    "github_reviewed" : true,
    "github_reviewed_at" : "2024-10-14T20:54:52Z",
    "nvd_published_at" : null
  }
}