{"id":"GHSA-gqj5-2xp5-3qmp","kind":"vulnerability","aliases":["GHSA-gqj5-2xp5-3qmp"],"related":[],"title":"Duplicate Advisory: Authentication bypass via jwt algorithm confusion","description":"### Duplicate Advisory\nThis advisory has been withdrawn because it is a duplicate of GHSA-j97h-3f8r-mrjr. This link is maintained to preserve external references.\n\n### Original Description\nA flaw was found in Keycloak. This JWT algorithm confusion vulnerability in the JWT Authorization Grant flow allows an attacker with valid client credentials to bypass signature verification. By forging an assertion, the attacker can create unauthorized access tokens. This enables the attacker to impersonate any federated user linked to the affected Identity Provider, leading to unauthorized access and potential privilege escalation.","summary":"Keycloak's JWT Authorization Grant flow accepts forged assertions because it skips signature verification through algorithm confusion. An attacker with valid client credentials can mint access tokens and impersonate any user linked to the affected identity provider.","severity":"high","cvss":8.1,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"org.keycloak:keycloak-services","fixed":["26.6.4"],"affected":"< 26.6.4","ecosystem":"maven"}],"ecosystems":["maven"],"tags":["cwe-347","identity-federation","keycloak","maven","runtime","self-hosted"],"not_affected_if":["keycloak-26.6.4-or-later"],"how_to_check":"- Check the Keycloak server version; affected releases are below `26.6.4`.\n- Check whether the JWT Authorization Grant flow is in use: unknown from the sources.","fix":"- Keycloak: move to `26.6.4`.","status":"withdrawn","published_at":"2026-06-26T00:32:05+00:00","first_seen_at":"2026-11-03T17:26:38+00:00","triaged_at":"2026-11-03T17:28:09+00:00","updated_at":"2026-11-03T17:28:09+00:00","category":"runtime","confidence":0.7,"triage":{"at":"2026-11-03T17:28:09Z","model":"claude-haiku-5-5","output":{"fix":"- Keycloak: move to `26.6.4`.","reach":"unknown","title":"Keycloak: JWT algorithm confusion lets attackers forge federated user tokens","impact":"high","summary":"Keycloak's JWT Authorization Grant flow accepts forged assertions because it skips signature verification through algorithm confusion. An attacker with valid client credentials can mint access tokens and impersonate any user linked to the affected identity provider.","audience":"businesses","category":"runtime","nicknames":[],"who_cares":["keycloak","identity-federation","maven","self-hosted"],"confidence":0.7,"fix_status":"available","needs_auth":"yes","worst_case":"Attacker forges tokens and impersonates federated users, gaining unauthorized access","analyst_note":"Withdrawn duplicate; confirm details and any setup requirement on the canonical advisory GHSA-j97h-3f8r-mrjr.","how_to_check":"- Check the Keycloak server version; affected releases are below `26.6.4`.\n- Check whether the JWT Authorization Grant flow is in use: unknown from the sources.","plain_action":"","needs_analyst":true,"not_affected_if":["keycloak-26.6.4-or-later"],"who_is_affected":"Organizations running Keycloak below 26.6.4 as an identity provider, especially with federated identity providers and the JWT Authorization Grant flow. An attacker needs valid client credentials to exploit it. The advisory was withdrawn as a duplicate of GHSA-j97h-3f8r-mrjr, so the canonical record should be checked for final details.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.001125,"input_tokens":4286,"output_tokens":1393,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-347':24B '2xp5':12A,17A '3f8r':87C '3qmp':13A,18A 'accept':40B 'access':59B,136C,156C 'advisori':2A,72C,74C 'affect':68B,150C 'algorithm':7A,49B,107C 'allow':116C 'assert':42B,130C 'attack':52B,118C,132C,141C 'authent':3A 'author':37B,113C 'bypass':4A,124C 'client':55B,121C 'confus':8A,50B,108C 'creat':134C 'credenti':56B,122C 'cwe':23B 'descript':98C 'duplic':1A,71C,82C 'enabl':139C 'escal':160C 'extern':95C 'feder':27B,145C 'flaw':100C 'flow':39B,115C 'forg':41B,128C 'found':102C 'ghsa':10A,15A,85C 'ghsa-gqj5-2xp5-3qmp':9A,14A 'ghsa-j97h-3f8r-mrjr':84C 'gqj5':11A,16A 'grant':38B,114C 'host':33B 'ident':26B,69B,151C 'identity-feder':25B 'imperson':62B,143C 'j97h':86C 'jwt':6A,36B,106C,112C 'keycloak':21A,28B,34B,104C 'keycloak-services':20A 'lead':153C 'link':65B,90C,147C 'maintain':92C 'maven':29B 'mint':58B 'mrjr':88C 'org.keycloak':19A 'origin':97C 'potenti':158C 'preserv':94C 'privileg':159C 'provid':70B,152C 'refer':96C 'runtim':30B 'self':32B 'self-host':31B 'services':22A 'signatur':46B,125C 'skip':45B 'token':60B,137C 'unauthor':135C,155C 'user':64B,146C 'valid':54B,120C 'verif':47B,126C 'via':5A 'vulner':109C 'withdrawn':77C","nicknames":[],"mitigations":[],"who_affected":"Organizations running Keycloak below 26.6.4 as an identity provider, especially with federated identity providers and the JWT Authorization Grant flow. An attacker needs valid client credentials to exploit it. The advisory was withdrawn as a duplicate of GHSA-j97h-3f8r-mrjr, so the canonical record should be checked for final details.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":["orgkeycloakkeycloakservices"],"ptokens":["keycloak","org","services"],"labels":["cwe347","high","identityfederation","keycloak","maven","runtime","selfhosted"],"campaign_type":null,"first_public_at":"2026-06-26T00:32:05+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","cvss_by":"GitHub","poc_count":0,"sources":[{"source":"ghsa","external_id":"GHSA-gqj5-2xp5-3qmp","url":"https://github.com/advisories/GHSA-gqj5-2xp5-3qmp","severity":"high","published_at":"2026-06-26T00:32:05+00:00","modified_at":"2026-11-03T17:24:15+00:00","first_seen_at":"2026-11-03T17:26:38+00:00","fetched_at":"2026-11-03T17:26:38+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"}