Description
Centrifugo is an open-source scalable real-time messaging server. Prior to 6.9.0, Centrifugo copies the client-controlled protocol.ConnectRequest.headers map through OnClientConnecting in internal/client/handler.go, ConnectEvent.Headers, and SetEmulatedHeadersToContext. The requestHeaders path in internal/proxy/http.go, the requestMetadata path in internal/proxy/grpc.go, and the Consume path in internal/unigrpc/grpc.go can forward an allowlisted value as a trusted backend header or metadata value. A remote client can spoof a header such as x-trusted-user for connect, refresh, subscribe, publish, RPC, and related proxy calls when the backend relies on that header for authentication or authorization. The unidirectional gRPC transport has no transport-level HTTP header that can override the emulated value. This issue is fixed in version 6.9.0.
Published: 2026-08-20
Score: 9.1 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability arises when the application copies client‑controlled headers and forwards them to backend services without validation. An attacker can inject headers such as x‑trusted‑user during connect, refresh, subscribe, publish, RPC, or proxy calls, which backends may use for authentication or authorization. This type of vulnerability is identified as CWE‑290. This allows an attacker to impersonate legitimate users or otherwise bypass security controls that rely on those headers, resulting in unauthorized access or privilege escalation.

Affected Systems

The issue affects the Centrifugo real‑time messaging server released by centrifugal:centrifugo before version 6.9.0. Any installation that accepts client‑provided headers and forwards them to HTTP or gRPC backends is exposed. The problem exists for all API endpoints that call proxy or unidirectional gRPC transports, including connect, refresh, subscribe, publish, RPC, and related proxy calls.

Risk and Exploitability

The CVSS score of 9.1 indicates high severity. Exploitation requires only remote access to the server API; the attacker does not need special privileges or additional infrastructure. The exploit can be performed by sending a forged header in a normal client request and does not depend on transport‑level header manipulation. EPSS data are not available and the vulnerability is not listed in the CISA KEV catalog, but the high CVSS and lack of client‑side restrictions make this a significant threat.

Generated by OpenCVE AI on August 21, 2026 at 01:28 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Centrifugo to version 6.9.0 or later, which removes the ability to forge forwarded headers
  • Reconfigure backend services to not rely on forwarded headers for authentication or to validate the authenticity of incoming headers, such as by using JWT tokens or server‑side session checks
  • Implement strict header validation on the proxy layer, rejecting or sanitizing any suspicious or untrusted header values to prevent spoofing

Generated by OpenCVE AI on August 21, 2026 at 01:28 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-9468-v6mj-fppw Centrifugo: Client-forgeable headers emulation lets any client spoof headers forwarded to proxy backends
History

Tue, 25 Aug 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Fri, 21 Aug 2026 00:30:00 +0000

Type Values Removed Values Added
First Time appeared Centrifugal
Centrifugal centrifugo
Vendors & Products Centrifugal
Centrifugal centrifugo

Thu, 20 Aug 2026 21:15:00 +0000

Type Values Removed Values Added
Description Centrifugo is an open-source scalable real-time messaging server. Prior to 6.9.0, Centrifugo copies the client-controlled protocol.ConnectRequest.headers map through OnClientConnecting in internal/client/handler.go, ConnectEvent.Headers, and SetEmulatedHeadersToContext. The requestHeaders path in internal/proxy/http.go, the requestMetadata path in internal/proxy/grpc.go, and the Consume path in internal/unigrpc/grpc.go can forward an allowlisted value as a trusted backend header or metadata value. A remote client can spoof a header such as x-trusted-user for connect, refresh, subscribe, publish, RPC, and related proxy calls when the backend relies on that header for authentication or authorization. The unidirectional gRPC transport has no transport-level HTTP header that can override the emulated value. This issue is fixed in version 6.9.0.
Title Centrifugo: Client-forgeable headers emulation lets any client spoof headers forwarded to proxy backends
Weaknesses CWE-290
References
Metrics cvssV3_1

{'score': 9.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N'}


Subscriptions

Centrifugal Centrifugo
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-25T15:23:47.006Z

Reserved: 2026-08-06T19:56:23.725Z

Link: CVE-2026-71485

cve-icon Vulnrichment

Updated: 2026-08-25T15:23:41.421Z

cve-icon NVD

Status : Received

Published: 2026-08-20T21:17:08.707

Modified: 2026-08-25T16:17:25.460

Link: CVE-2026-71485

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-21T01:30:05Z

Weaknesses
  • CWE-290

    Authentication Bypass by Spoofing