{"id":"CVE-2026-89313","kind":"vulnerability","aliases":["CVE-2026-89313"],"related":[],"title":"JwksTrustStore.Get returns the wrong signing key when kid is missing","description":"`JwksTrustStore.Get` assigned each parsed key to the function's **named return value** while refreshing the JWKS cache. When the requested `kid` was not present, the trailing naked `return` handed the caller the last key in the JWKS document together with a `nil` error — a confidently wrong answer instead of \"not found\".","summary":"When a requested key ID is absent from a JWKS document, JwksTrustStore.Get returns the last key in the document with a nil error instead of reporting not found. A caller that trusts that key can accept tokens verified against the wrong key.","severity":"medium","cvss":6.3,"epss":0.00207,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["go","jwks","jwt","package"],"not_affected_if":[],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-10-23T09:17:07+00:00","first_seen_at":"2026-10-23T21:57:32+00:00","triaged_at":"2026-10-25T04:00:05+00:00","updated_at":"2026-10-25T04:00:05+00:00","category":"package","confidence":0.5,"triage":{"at":"2026-10-25T04:00:05Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"unknown","title":"JwksTrustStore.Get returns the wrong signing key when kid is missing","impact":"medium","summary":"When a requested key ID is absent from a JWKS document, JwksTrustStore.Get returns the last key in the document with a nil error instead of reporting not found. A caller that trusts that key can accept tokens verified against the wrong key.","category":"package","nicknames":[],"who_cares":["go","jwks","jwt"],"confidence":0.5,"needs_auth":"unknown","worst_case":"wrong signing key trusted, so forged tokens may verify","analyst_note":"Identify the affected Go module and fixed version from the NVD entry at https://nvd.nist.gov/vuln/detail/CVE-2026-89313; the sources do not name the package.","how_to_check":"unknown","needs_analyst":true,"not_affected_if":[],"who_is_affected":"unknown","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.000517,"input_tokens":3366,"output_tokens":361,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-2026':12A,15A '-89313':13A,16A 'absent':27B 'accept':56B 'answer':109C 'assign':64C 'cach':79C 'caller':50B,93C 'confid':107C 'cve':11A,14A 'document':31B,39B,100C 'error':43B,105C 'found':48B,113C 'function':70C 'go':17B 'hand':91C 'id':25B 'instead':44B,110C 'jwks':18B,30B,78C,99C 'jwkstruststore.get':1A,32B,63C 'jwt':19B 'key':6A,24B,36B,54B,62B,67C,96C 'kid':8A,83C 'last':35B,95C 'miss':10A 'nake':89C 'name':72C 'nil':42B,104C 'packag':20B 'pars':66C 'present':86C 'refresh':76C 'report':46B 'request':23B,82C 'return':2A,33B,73C,90C 'sign':5A 'togeth':101C 'token':57B 'trail':88C 'trust':52B 'valu':74C 'verifi':58B 'wrong':4A,61B,108C","nicknames":[],"mitigations":[],"who_affected":null,"tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-23T09:17:07+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"emo@eclipse.org","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-89313","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-89313","severity":null,"published_at":"2026-10-23T09:17:07+00:00","modified_at":"2026-10-23T19:30:07+00:00","first_seen_at":"2026-10-23T21:57:32+00:00","fetched_at":"2026-10-23T22:29:03+00:00","note":null},{"source":"epss","external_id":"CVE-2026-89313","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-89313","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-24T07:15:51+00:00","fetched_at":"2026-10-24T07:15:51+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"}