{"id":"CVE-2026-49998","state":"PUBLISHED","title":"Centrifugo: Dynamic JWKS key cache keyed only by `kid` allows cross-issuer JWT authentication bypass","description":"Centrifugo is an open-source scalable real-time messaging server. Prior to 6.8.1, Centrifugo dynamic JWKS endpoint verification could reuse a key for one allowed issuer to verify a JWT for another allowed issuer because the JWKS cache and singleflight lookup were keyed only by JWT header kid, not by the resolved JWKS endpoint, issuer, audience, or trust-domain namespace, affecting client.token.jwks_public_endpoint, client.subscription_token.jwks_public_endpoint, internal/jwks/cache.go, and internal/jwks/manager.go. This issue is fixed in version 6.8.1.","publishedAt":"2026-07-16T19:33:33.147Z","updatedAt":"2026-07-17T11:13:39.150Z","severity":{"score":8.2,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:N","source":"GitHub_M"},"assigner":"GitHub_M","products":["centrifugal centrifugo"],"affected":[{"vendor":"centrifugal","product":"centrifugo","versions":[{"version":"< 6.8.1","status":"affected"}]}],"references":["https://github.com/centrifugal/centrifugo/security/advisories/GHSA-g6vg-wj8f-48cj","https://github.com/centrifugal/centrifugo/pull/1142","https://github.com/centrifugal/centrifugo/commit/15d785015c6f318c1b68ea40b813699c9f8bd2c4","https://github.com/centrifugal/centrifugo/releases/tag/v6.8.1"],"weaknesses":["CWE-347"],"ingestedAt":"2026-10-29T20:12:07.131Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/49xxx/CVE-2026-49998.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-49998","state":"PUBLISHED","datePublished":"2026-07-16T19:33:33.147Z","dateUpdated":"2026-07-17T11:13:39.150Z","assignerShortName":"GitHub_M","assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateReserved":"2026-06-02T18:30:51.283Z"},"containers":{"cna":{"title":"Centrifugo: Dynamic JWKS key cache keyed only by `kid` allows cross-issuer JWT authentication bypass","descriptions":[{"lang":"en","value":"Centrifugo is an open-source scalable real-time messaging server. Prior to 6.8.1, Centrifugo dynamic JWKS endpoint verification could reuse a key for one allowed issuer to verify a JWT for another allowed issuer because the JWKS cache and singleflight lookup were keyed only by JWT header kid, not by the resolved JWKS endpoint, issuer, audience, or trust-domain namespace, affecting client.token.jwks_public_endpoint, client.subscription_token.jwks_public_endpoint, internal/jwks/cache.go, and internal/jwks/manager.go. This issue is fixed in version 6.8.1."}],"affected":[{"vendor":"centrifugal","product":"centrifugo","versions":[{"version":"< 6.8.1","status":"affected"}]}],"references":[{"url":"https://github.com/centrifugal/centrifugo/security/advisories/GHSA-g6vg-wj8f-48cj","name":"https://github.com/centrifugal/centrifugo/security/advisories/GHSA-g6vg-wj8f-48cj","tags":["x_refsource_CONFIRM"]},{"url":"https://github.com/centrifugal/centrifugo/pull/1142","name":"https://github.com/centrifugal/centrifugo/pull/1142","tags":["x_refsource_MISC"]},{"url":"https://github.com/centrifugal/centrifugo/commit/15d785015c6f318c1b68ea40b813699c9f8bd2c4","name":"https://github.com/centrifugal/centrifugo/commit/15d785015c6f318c1b68ea40b813699c9f8bd2c4","tags":["x_refsource_MISC"]},{"url":"https://github.com/centrifugal/centrifugo/releases/tag/v6.8.1","name":"https://github.com/centrifugal/centrifugo/releases/tag/v6.8.1","tags":["x_refsource_MISC"]}],"metrics":[{"cvssV3_1":{"attackComplexity":"HIGH","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":8.2,"baseSeverity":"HIGH","confidentialityImpact":"HIGH","integrityImpact":"HIGH","privilegesRequired":"LOW","scope":"CHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:N","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-347","lang":"en","description":"CWE-347: Improper Verification of Cryptographic Signature","type":"CWE"}]}],"providerMetadata":{"shortName":"GitHub_M","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateUpdated":"2026-07-16T19:33:33.147Z"},"source":{"advisory":"GHSA-g6vg-wj8f-48cj","discovery":"UNKNOWN"}},"adp":[{"title":"CISA ADP Vulnrichment","references":[{"url":"https://github.com/centrifugal/centrifugo/security/advisories/GHSA-g6vg-wj8f-48cj","tags":["exploit"]}],"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-07-17T11:13:16.710942Z","id":"CVE-2026-49998","options":[{"Exploitation":"poc"},{"Automatable":"no"},{"Technical Impact":"total"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-07-17T11:13:39.150Z"}}]}}}