{"id":"CVE-2023-1664","aliases":["EUVD-2023-1697","GHSA-5cc8-pgp5-7mpm","RHSA-2023:3883","RHSA-2023:3884","RHSA-2023:3885"],"status":"published","title":"Keycloak Untrusted Certificate Validation vulnerability","description":"A flaw was found in Keycloak. This flaw depends on a non-default configuration \"Revalidate Client Certificate\" to be enabled and the reverse proxy is not validating the certificate before Keycloak. Using this method an attacker may choose the certificate which will be validated by the server. If this happens and the KC_SPI_TRUSTSTORE_FILE_FILE variable is missing/misconfigured, any trustfile may be accepted with the logging information of \"Cannot validate client certificate trust: Truststore not available\". This may not impact availability as the attacker would have no access to the server, but consumer applications Integrity or Confidentiality may be impacted considering a possible access to them. Considering the environment is correctly set to use \"Revalidate Client Certificate\" this flaw is avoidable.","severity":{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","level":"medium","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-09","score":0.00425,"percentile":0.37046,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-295"],"published":"2023-05-26T00:00:00Z","modified":"2026-10-28T02:30:45Z","fixes":[{"ecosystem":"Maven","package":"org.keycloak:keycloak-core","fixed_in":["21.1.2"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"Maven","package":"org.keycloak:keycloak-core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"21.1.2"}]}]},{"source":"osv","ecosystem":"Maven","package":"org.keycloak:keycloak-core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"21.1.2"}]}],"versions":["1.0-alpha-1","1.0-alpha-1-12062013","1.0-alpha-2","1.0-alpha-3","1.0-alpha-4","1.0-beta-1","1.0-beta-1-20150521","1.0-beta-1-20150523","1.0-beta-2","1.0-beta-3","1.0-beta-4","1.0-final","1.0-rc-1","1.0-rc-2","1.0.1.Final","1.0.2.Final","1.0.3.Final","1.0.4.Final","1.0.5.Final","1.1.0.Beta1","1.1.0.Beta2","1.1.0.Final","1.1.1.Final","1.2.0.Beta1","1.2.0.CR1","1.2.0.Final","1.3.0.Final","1.3.1.Final","1.4.0.Final","1.5.0-Final","1.5.0.Final","1.5.1.Final","1.6.0.Final","1.6.1.Final","1.7.0.CR1","1.7.0.Final","1.8.0.Alpha1","1.8.0.CR1","1.8.0.CR2","1.8.0.CR3","1.8.0.Final","1.8.1.Final","1.9.0.CR1","1.9.0.Final","1.9.1.Final","1.9.2.Final","1.9.3.Final","1.9.4.Final","1.9.5.Final","1.9.7.Final","1.9.8.Final","10.0.0","10.0.1","10.0.2","11.0.0","11.0.1","11.0.2","11.0.3","12.0.0","12.0.1","12.0.2","12.0.3","12.0.4","13.0.0","13.0.1","14.0.0","15.0.0","15.0.1","15.0.2","15.1.0","15.1.1","16.0.0","16.1.0","16.1.1","17.0.0","17.0.1","18.0.0","18.0.1","18.0.2","19.0.0","19.0.1","19.0.2","19.0.3","2.0.0.CR1","2.0.0.Final","2.1.0.CR1","2.1.0.Final","2.2.0.CR1","2.2.0.Final","2.2.1.Final","2.3.0.CR1","2.3.0.Final","2.4.0.CR1","2.4.0.Final","2.5.0.CR1","2.5.0.Final","2.5.1.Final","2.5.4.Final","2.5.5.Final","20.0.0","20.0.1","20.0.2","20.0.3","20.0.4","20.0.5","21.0.0","21.0.1","21.0.2","21.1.0","21.1.1","3.0.0.CR1","3.0.0.Final","3.1.0.CR1","3.1.0.Final","3.2.0.CR1","3.2.0.Final","3.2.1.Final","3.3.0.CR1","3.3.0.CR2","3.3.0.Final","3.4.0.CR1","3.4.0.Final","3.4.1.CR1","3.4.1.Final","3.4.2.Final","3.4.3.Final","4.0.0.Beta1","4.0.0.Beta2","4.0.0.Beta3","4.0.0.Final","4.1.0.Final","4.2.0.Final","4.2.1.Final","4.3.0.Final","4.4.0.Final","4.5.0.Final","4.6.0.Final","4.7.0.Final","4.8.0.Final","4.8.1.Final","4.8.2.Final","4.8.3.Final","5.0.0","6.0.0","6.0.1","7.0.0","7.0.1","8.0.0","8.0.1","8.0.2","9.0.0","9.0.2","9.0.3"]},{"source":"osv","ecosystem":"Red Hat:red_hat_single_sign_on:7.6::el7","package":"rh-sso7-keycloak","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:18.0.8-1.redhat_00001.1.el7sso"}]}],"bundled":5},{"source":"osv","ecosystem":"Red Hat:red_hat_single_sign_on:7.6::el7","package":"rh-sso7-keycloak-server","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:18.0.8-1.redhat_00001.1.el7sso"}]}],"bundled":5},{"source":"osv","ecosystem":"Red Hat:red_hat_single_sign_on:7.6::el8","package":"rh-sso7-keycloak","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:18.0.8-1.redhat_00001.1.el8sso"}]}],"bundled":5},{"source":"osv","ecosystem":"Red Hat:red_hat_single_sign_on:7.6::el8","package":"rh-sso7-keycloak-server","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:18.0.8-1.redhat_00001.1.el8sso"}]}],"bundled":5},{"source":"osv","ecosystem":"Red Hat:red_hat_single_sign_on:7.6::el9","package":"rh-sso7-keycloak","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:18.0.8-1.redhat_00001.1.el9sso"}]}],"bundled":5},{"source":"osv","ecosystem":"Red Hat:red_hat_single_sign_on:7.6::el9","package":"rh-sso7-keycloak-server","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:18.0.8-1.redhat_00001.1.el9sso"}]}],"bundled":5}],"products":[{"vendor":"keycloak","product":"keycloak"},{"vendor":"redhat","product":"build_of_quarkus"},{"vendor":"redhat","product":"jboss_a-mq"},{"vendor":"redhat","product":"keycloak"},{"vendor":"redhat","product":"migration_toolkit_for_runtimes"},{"vendor":"redhat","product":"single_sign-on"}],"references":[{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2182196\u0026comment#0","tags":["x_transferred","Issue Tracking","Vendor Advisory","report","web"]},{"url":"https://github.com/keycloak/keycloak/security/advisories/GHSA-5cc8-pgp5-7mpm","tags":["web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2023-1664","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2023-1664","tags":["web","report"]},{"url":"https://github.com/advisories/GHSA-5cc8-pgp5-7mpm","tags":["advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/1xxx/CVE-2023-1664.json","tags":["advisory"]},{"url":"https://github.com/keycloak/keycloak","tags":["package"]},{"url":"https://access.redhat.com/errata/RHSA-2023:3883","tags":["advisory"]},{"url":"https://access.redhat.com/security/updates/classification/#important","tags":["article"]},{"url":"https://access.redhat.com/articles/11258","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2151618","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2174246","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2182196","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2191668","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2196335","tags":["report"]},{"url":"https://security.access.redhat.com/data/csaf/v2/advisories/2023/rhsa-2023_3883.json","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2022-4361","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2022-4361","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2022-4361","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2023-1108","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2023-1108","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2023-1108","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-m4mm-pg93-fv78","tags":["advisory"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2023-1664","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2023-2422","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2023-2422","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2023-2422","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2023-2585","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2023-2585","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2023-2585","tags":["advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2023:3884","tags":["advisory"]},{"url":"https://security.access.redhat.com/data/csaf/v2/advisories/2023/rhsa-2023_3884.json","tags":["advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2023:3885","tags":["advisory"]},{"url":"https://security.access.redhat.com/data/csaf/v2/advisories/2023/rhsa-2023_3885.json","tags":["advisory"]}],"sources":{"cve":[{"id":"CVE-2023-1664","description":"A flaw was found in Keycloak. This flaw depends on a non-default configuration \"Revalidate Client Certificate\" to be enabled and the reverse proxy is not validating the certificate before Keycloak. Using this method an attacker may choose the certificate which will be validated by the server. If this happens and the KC_SPI_TRUSTSTORE_FILE_FILE variable is missing/misconfigured, any trustfile may be accepted with the logging information of \"Cannot validate client certificate trust: Truststore not available\". This may not impact availability as the attacker would have no access to the server, but consumer applications Integrity or Confidentiality may be impacted considering a possible access to them. Considering the environment is correctly set to use \"Revalidate Client Certificate\" this flaw is avoidable.","status":"published","published":"2023-05-26T00:00:00Z","modified":"2025-01-15T21:34:51.378Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","level":"medium","assessor":"adp"}],"cwes":["CWE-295"],"updated_at":"2026-11-02T14:35:32.019713Z"}],"euvd":[{"id":"EUVD-2023-1697","description":"A flaw was found in Keycloak. This flaw depends on a non-default configuration \"Revalidate Client Certificate\" to be enabled and the reverse proxy is not validating the certificate before Keycloak. Using this method an attacker may choose the certificate which will be validated by the server. If this happens and the KC_SPI_TRUSTSTORE_FILE_FILE variable is missing/misconfigured, any trustfile may be accepted with the logging information of \"Cannot validate client certificate trust: Truststore not available\". This may not impact availability as the attacker would have no access to the server, but consumer applications Integrity or Confidentiality may be impacted considering a possible access to them. Considering the environment is correctly set to use \"Revalidate Client Certificate\" this flaw is avoidable.","status":"published","published":"2023-05-26T00:00:00Z","modified":"2025-01-15T21:34:51Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","level":"medium"}],"updated_at":"2026-11-03T00:04:18.582094Z"}],"ghsa":[{"id":"GHSA-5cc8-pgp5-7mpm","title":"Keycloak Untrusted Certificate Validation vulnerability","description":"A flaw was found in keycloak-core. This flaw considers the scenario when using X509 Client Certificate Authenticatior with the option \"Revalidate Client Certificate\". A user may be able to choose, if directly connect to keycloak (not passing via reverse proxy) a specific certificate. If there's a configuration error in KC_SPI_TRUSTSTORE_FILE_FILE the authenticator allows even with the \"Cannot validate client certificate trust: Truststore not available\" message as there's no certificate to trust against.","status":"published","published":"2023-06-30T20:30:30Z","modified":"2023-06-30T20:30:31Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","level":"medium"}],"cwes":["CWE-295"],"updated_at":"2026-11-02T14:36:55.91458Z"}],"nvd":[{"id":"CVE-2023-1664","description":"A flaw was found in Keycloak. This flaw depends on a non-default configuration \"Revalidate Client Certificate\" to be enabled and the reverse proxy is not validating the certificate before Keycloak. Using this method an attacker may choose the certificate which will be validated by the server. If this happens and the KC_SPI_TRUSTSTORE_FILE_FILE variable is missing/misconfigured, any trustfile may be accepted with the logging information of \"Cannot validate client certificate trust: Truststore not available\". This may not impact availability as the attacker would have no access to the server, but consumer applications Integrity or Confidentiality may be impacted considering a possible access to them. Considering the environment is correctly set to use \"Revalidate Client Certificate\" this flaw is avoidable.","status":"published","published":"2023-05-26T18:15:09.74Z","modified":"2026-06-17T05:28:28.333Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","level":"medium","assessor":"primary"},{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","level":"medium","assessor":"secondary"}],"cwes":["CWE-295"],"updated_at":"2026-11-02T14:08:03.200773Z"}],"osv":[{"id":"CVE-2023-1664","description":"A flaw was found in Keycloak. This flaw depends on a non-default configuration \"Revalidate Client Certificate\" to be enabled and the reverse proxy is not validating the certificate before Keycloak. Using this method an attacker may choose the certificate which will be validated by the server. If this happens and the KC_SPI_TRUSTSTORE_FILE_FILE variable is missing/misconfigured, any trustfile may be accepted with the logging information of \"Cannot validate client certificate trust: Truststore not available\". This may not impact availability as the attacker would have no access to the server, but consumer applications Integrity or Confidentiality may be impacted considering a possible access to them. Considering the environment is correctly set to use \"Revalidate Client Certificate\" this flaw is avoidable.","status":"published","published":"2023-05-26T00:00:00Z","modified":"2026-10-28T02:30:45.323182798Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","level":"medium"}],"cwes":["CWE-295"],"updated_at":"2026-11-02T15:44:30.334753Z"},{"id":"GHSA-5cc8-pgp5-7mpm","title":"Keycloak Untrusted Certificate Validation vulnerability","description":"A flaw was found in keycloak-core. This flaw considers the scenario when using X509 Client Certificate Authenticatior with the option \"Revalidate Client Certificate\". A user may be able to choose, if directly connect to keycloak (not passing via reverse proxy) a specific certificate. If there's a configuration error in KC_SPI_TRUSTSTORE_FILE_FILE the authenticator allows even with the \"Cannot validate client certificate trust: Truststore not available\" message as there's no certificate to trust against.","status":"published","published":"2023-06-30T20:30:30Z","modified":"2024-02-16T08:16:31.777071Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","level":"medium"}],"cwes":["CWE-295"],"updated_at":"2026-11-02T15:46:38.213481Z"},{"id":"RHSA-2023:3883","title":"Red Hat Security Advisory: Red Hat Single Sign-On 7.6.4 security update on RHEL 7","status":"published","published":"2024-09-27T15:16:31Z","modified":"2026-10-02T10:03:10Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N","level":"high"}],"updated_at":"2026-11-02T15:53:11.154197Z"},{"id":"RHSA-2023:3884","title":"Red Hat Security Advisory: Red Hat Single Sign-On 7.6.4 security update on RHEL 8","status":"published","published":"2024-09-27T15:16:40Z","modified":"2026-10-02T10:03:10Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N","level":"high"}],"updated_at":"2026-11-02T15:53:11.154197Z"},{"id":"RHSA-2023:3885","title":"Red Hat Security Advisory: Red Hat Single Sign-On 7.6.4 security update on RHEL 9","status":"published","published":"2024-09-27T15:16:50Z","modified":"2026-10-02T10:03:11Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N","level":"high"}],"updated_at":"2026-11-02T15:53:11.154197Z"}]}}
