{"id":"CVE-2026-89316","kind":"vulnerability","aliases":["CVE-2026-89316"],"related":[],"title":"Go JWK parser: panic from unchecked ECDSA type assertion on crafted key","description":"`LoadPublicKey` resolved an EC key's curve with an unchecked type assertion, `algToOptsMap[alg].(*ECDSAOptions)`. A JWK declaring `\"kty\":\"EC\"` together with a non-EC `\"alg\"` — which RFC 7517 §4.4 permits — reaches that assertion and **panics**.","summary":"LoadPublicKey resolves an EC key's curve with an unchecked type assertion, so a JWK with kty EC and a non-EC alg value makes the parser panic. An attacker who can supply such a key crashes the process that parses it, a denial of service.","severity":"medium","cvss":6.3,"epss":0.00207,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["go","jwk","jwt","package"],"not_affected_if":["no-untrusted-jwk-input"],"how_to_check":"- unknown","fix":"- unknown","status":"open","published_at":"2026-10-23T09:17:08+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.6,"triage":{"at":"2026-10-25T04:00:05Z","model":"claude-haiku-5-5","output":{"fix":"- unknown","reach":"unknown","title":"Go JWK parser: panic from unchecked ECDSA type assertion on crafted key","impact":"low","summary":"LoadPublicKey resolves an EC key's curve with an unchecked type assertion, so a JWK with kty EC and a non-EC alg value makes the parser panic. An attacker who can supply such a key crashes the process that parses it, a denial of service.","category":"package","nicknames":[],"who_cares":["go","jwk","jwt"],"confidence":0.6,"needs_auth":"unknown","worst_case":"Parsing process crashes on a malicious key, denial of service only.","analyst_note":"Identify the affected Go module and fixed version from the NVD entry at https://nvd.nist.gov/vuln/detail/CVE-2026-89316.","how_to_check":"- unknown","needs_analyst":true,"not_affected_if":["no-untrusted-jwk-input"],"who_is_affected":"unknown","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000528,"input_tokens":3391,"output_tokens":378,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-2026':14A,17A '-89316':15A,18A '4.4':100C '7517':99C 'alg':46B,83C,96C 'algtooptsmap':82C 'assert':9A,34B,81C,104C 'attack':53B 'craft':11A 'crash':60B 'curv':29B,76C 'cve':13A,16A 'declar':87C 'denial':67B 'ec':26B,40B,45B,73C,89C,95C 'ecdsa':7A 'ecdsaopt':84C 'go':1A,19B 'jwk':2A,20B,37B,86C 'jwt':21B 'key':12A,27B,59B,74C 'kti':39B,88C 'loadpublickey':23B,70C 'make':48B 'non':44B,94C 'non-ec':43B,93C 'packag':22B 'panic':4A,51B,106C 'pars':64B 'parser':3A,50B 'permit':101C 'process':62B 'reach':102C 'resolv':24B,71C 'rfc':98C 'servic':69B 'suppli':56B 'togeth':90C 'type':8A,33B,80C 'uncheck':6A,32B,79C 'valu':47B","nicknames":[],"mitigations":[],"who_affected":null,"tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-23T09:17:08+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/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-89316","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-89316","severity":null,"published_at":"2026-10-23T09:17:08+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-89316","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-89316","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"}