CVE-2026-49998: Centrifugal Centrifugo authentication bypass in JWKS endpoint verification

CVE-2026-49998 · Severity: high · CVSS 8.2 · Published 2026-07-16

Centrifugo is a real-time messaging server used to deliver instant updates to web and mobile applications. A security flaw in how the server verifies user identities in multi-tenant environments could allow an attacker who controls one tenant to impersonate users in a different tenant. This could lead to unauthorized access to private messages or the ability to send messages as another user, potentially compromising sensitive customer data and system integrity.

Technologies: Centrifugal Centrifugo, github.com/centrifugal/centrifugo (Go), github.com/centrifugal/centrifugo/v3 (Go), github.com/centrifugal/centrifugo/v4 (Go), github.com/centrifugal/centrifugo/v5 (Go), github.com/centrifugal/centrifugo/v6 (Go). Vendors: Centrifugal, Go.

Quick answers

Is CVE-2026-49998 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-49998 being exploited in the wild.
How severe is CVE-2026-49998?
High severity, with a CVSS score of 8.2, published 16 July 2026.
Which products and versions are affected?
Centrifugal Centrifugo < 6.8.1, <= 2.4.0; github.com/centrifugal/centrifugo (Go) <= 2.4.0, SEMVER:introduced=0, SEMVER:introduced=0,last_affected=2.4.0; github.com/centrifugal/centrifugo/v3 (Go) <= 3.2.3, SEMVER:introduced=0, SEMVER:introduced=0,last_affected=3.2.3; github.com/centrifugal/centrifugo/v4 (Go) <= 4.1.5, SEMVER:introduced=0, SEMVER:introduced=0,last_affected=4.1.5; and 2 more.
Is there a fix for CVE-2026-49998?
Yes. github.com/centrifugal/centrifugo/v6 (Go): upgrade to 6.8.1 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-49998 attacked?
It is attacked over the network, in a hosted service.
Am I affected by CVE-2026-49998?
Check whether you run Centrifugal Centrifugo, github.com/centrifugal/centrifugo (Go), github.com/centrifugal/centrifugo/v3 (Go) or one of the others listed at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • github.com/centrifugal/centrifugo/v6 (Go): upgrade to 6.8.1 or later
    go get github.com/centrifugal/centrifugo/v6@v6.8.1

Technical details

A vulnerability exists in Centrifugo's dynamic JSON Web Key Set (JWKS) verification logic where the internal cache and singleflight lookups are keyed solely by the 'kid' (Key ID) header from the JWT. In multi-tenant configurations using templated JWKS endpoints, this allows a key fetched for one issuer to satisfy verification for another issuer if they share the same 'kid'. An attacker with the ability to provide a valid token for one tenant can impersonate users in another tenant if they can ensure their key is cached first. This affects configurations using 'client.token.jwks_public_endpoint' and 'client.subscription_token.jwks_public_endpoint'. The issue is resolved in version 6.8.1 by using a composite cache key consisting of the resolved endpoint URL and the 'kid'.

Affected products

  • Centrifugal Centrifugo < 6.8.1

Identifiers

  • CVE-2026-49998
  • GHSA-g6vg-wj8f-48cj
  • GO-2026-5872

Timeline

  • 2026-05-27: patched: Fixed in version 6.8.1
  • 2026-07-16: advisory: CVE-2026-49998 published

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.