{"id":"CVE-2026-2092","kind":"vulnerability","aliases":["CVE-2026-2092","GHSA-794g-x443-36f7"],"related":[],"title":"Keycloak: Unauthorized access via improper validation of encrypted SAML assertions","description":"A flaw was found in Keycloak. Keycloak's Security Assertion Markup Language (SAML) broker endpoint does not properly validate encrypted assertions when the overall SAML response is not signed. An attacker with a valid signed SAML assertion can exploit this by crafting a malicious SAML response. This allows the attacker to inject an encrypted assertion for an arbitrary principal, leading to unauthorized access and potential information disclosure.","summary":"Keycloak's SAML broker endpoint does not properly validate encrypted assertions when the overall SAML response is unsigned. An attacker holding one valid signed SAML assertion can craft a response with an injected encrypted assertion for another principal, gaining unauthorized access and possibly reading information.","severity":"high","cvss":7.7,"epss":0.00375,"exploited":false,"exploited_at":null,"products":[{"name":"org.keycloak:keycloak-services","fixed":[],"affected":"<= 26.2.5","ecosystem":"maven"},{"name":"org.keycloak:keycloak-services","fixed":[],"affected":">= 26.3.0, <= 26.4.7","ecosystem":"maven"},{"name":"org.keycloak:keycloak-services","fixed":["26.5.5"],"affected":">= 26.5.0, < 26.5.5","ecosystem":"maven"},{"name":"redhat build of keycloak","fixed":["26.2.14"],"affected":">= 26.2, < 26.2.14","ecosystem":"vendor"},{"name":"redhat build of keycloak","fixed":["26.4.10"],"affected":">= 26.4, < 26.4.10","ecosystem":"vendor"}],"ecosystems":["maven","vendor"],"tags":["cwe-1287","identity-brokering","keycloak","runtime","saml","self-hosted"],"not_affected_if":["no-saml-identity-provider","oidc-only","signed-saml-responses-enforced"],"how_to_check":"- Check the Keycloak version with `kc.sh --version` or the admin console footer and compare it with the affected ranges.\n- Look for SAML identity providers configured in the realm (Identity Providers, SAML v2.0) and confirm whether the broker accepts unsigned SAML responses.","fix":"- Upgrade Keycloak to `26.5.5` on the 26.5 line.\n- For 26.2.5 and earlier, and for 26.3.0 through 26.4.7, the sources do not name a fixed version: unknown.","status":"open","published_at":"2026-03-18T02:16:24+00:00","first_seen_at":"2026-10-26T14:52:20+00:00","triaged_at":"2026-10-26T14:52:53+00:00","updated_at":"2026-10-26T15:00:59+00:00","category":"runtime","confidence":0.7,"triage":{"at":"2026-10-26T14:52:53Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade Keycloak to `26.5.5` on the 26.5 line.\n- For 26.2.5 and earlier, and for 26.3.0 through 26.4.7, the sources do not name a fixed version: unknown.","reach":"internet","title":"Keycloak: forged encrypted SAML assertions grant access as arbitrary users","impact":"high","summary":"Keycloak's SAML broker endpoint does not properly validate encrypted assertions when the overall SAML response is unsigned. An attacker holding one valid signed SAML assertion can craft a response with an injected encrypted assertion for another principal, gaining unauthorized access and possibly reading information.","category":"runtime","nicknames":[],"who_cares":["keycloak","saml","self-hosted","identity-brokering"],"confidence":0.7,"needs_auth":"yes","worst_case":"Attacker logs in as another principal and may read information","analyst_note":"","how_to_check":"- Check the Keycloak version with `kc.sh --version` or the admin console footer and compare it with the affected ranges.\n- Look for SAML identity providers configured in the realm (Identity Providers, SAML v2.0) and confirm whether the broker accepts unsigned SAML responses.","needs_analyst":false,"not_affected_if":["no-saml-identity-provider","oidc-only","signed-saml-responses-enforced"],"who_is_affected":"Deployments that use Keycloak as a SAML identity broker, where the SAML broker endpoint accepts responses whose outer message is not signed. Keycloak installs that only use OIDC or have no SAML identity providers are not exposed. Teams should check the affected version ranges and whether any SAML broker is reachable from the internet.","user_interaction":"unknown","needs_special_setup":"yes","severity_if_unknown":"high"},"cost_usd":0.001054,"input_tokens":3465,"output_tokens":1415,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-1287':43B '-2026':12A,20A '-2092':13A,21A '36f7':18A '794g':16A 'access':3A,93B,160C 'allow':145C 'anoth':89B 'arbitrari':155C 'assert':10A,63B,78B,87B,107C,118C,134C,152C 'attack':72B,128C,147C 'broker':46B,56B,111C 'build':35A,39A 'craft':80B,139C 'cve':11A,19A 'cwe':42B 'disclosur':164C 'encrypt':8A,62B,86B,117C,151C 'endpoint':57B,112C 'exploit':136C 'flaw':99C 'found':101C 'gain':91B 'ghsa':15A 'ghsa-794g-x443-36f7':14A 'hold':73B 'host':52B 'ident':45B 'identity-brok':44B 'improp':5A 'inform':97B,163C 'inject':85B,149C 'keycloak':1A,24A,28A,32A,37A,41A,47B,53B,103C,104C 'keycloak-services':23A,27A,31A 'languag':109C 'lead':157C 'malici':141C 'markup':108C 'of':36A,40A 'one':74B 'org.keycloak':22A,26A,30A 'overal':66B,121C 'possibl':95B 'potenti':162C 'princip':90B,156C 'proper':60B,115C 'read':96B 'redhat':34A,38A 'respons':68B,82B,123C,143C 'runtim':48B 'saml':9A,49B,55B,67B,77B,110C,122C,133C,142C 'secur':106C 'self':51B 'self-host':50B 'services':25A,29A,33A 'sign':76B,126C,132C 'unauthor':2A,92B,159C 'unsign':70B 'valid':6A,61B,75B,116C,131C 'via':4A 'x443':17A","nicknames":[],"mitigations":[],"who_affected":"Deployments that use Keycloak as a SAML identity broker, where the SAML broker endpoint accepts responses whose outer message is not signed. Keycloak installs that only use OIDC or have no SAML identity providers are not exposed. Teams should check the affected version ranges and whether any SAML broker is reachable from the internet.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-03-18T02:16:24+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:L/A:L","cvss_by":"GitHub","poc_count":0,"sources":[{"source":"ghsa","external_id":"GHSA-794g-x443-36f7","url":"https://github.com/advisories/GHSA-794g-x443-36f7","severity":"high","published_at":"2026-07-02T20:42:23+00:00","modified_at":"2026-10-26T14:50:06+00:00","first_seen_at":"2026-10-26T14:52:20+00:00","fetched_at":"2026-10-26T14:57:33+00:00","note":null},{"source":"nvd","external_id":"CVE-2026-2092","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-2092","severity":null,"published_at":"2026-03-18T02:16:24+00:00","modified_at":"2026-10-06T17:17:25+00:00","first_seen_at":"2026-10-26T15:00:59+00:00","fetched_at":"2026-10-26T15:00:59+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}