CVE-2026-27889: NATS Server denial of service via WebSocket frame length overflow

CVE-2026-27889 · Severity: high · CVSS 7.5 · Published 2026-03-25

NATS Server is a high-performance messaging system used for cloud and edge computing. A vulnerability in its WebSocket handling allows an unauthenticated attacker to crash the server remotely by sending a single malicious message. This results in a complete service outage, disconnecting all clients and disrupting operations that rely on the messaging infrastructure.

Technologies: github.com/nats-io/nats-server (Go), github.com/nats-io/nats-server/v2 (Go), Red Hat Multicluster Global Hub. Vendors: Go, Red Hat.

Quick answers

Is CVE-2026-27889 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-27889 being exploited in the wild.
How severe is CVE-2026-27889?
High severity, with a CVSS score of 7.5, published 25 March 2026.
Which products and versions are affected?
github.com/nats-io/nats-server (Go) SEMVER:introduced=0; github.com/nats-io/nats-server/v2 (Go) SEMVER:introduced=2.2.0,fixed=2.11.14, SEMVER:introduced=2.2.0,fixed=2.11.14,introduced=2.12.0,fixed=2.12.5; Red Hat Multicluster Global Hub 1.4.5, 1.5.4, 1.6.2.
Is there a fix for CVE-2026-27889?
Yes. github.com/nats-io/nats-server/v2 (Go): upgrade to 2.11.14, 2.12.5 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-27889 attacked?
It is attacked over the network, in a hosted service.
Am I affected by CVE-2026-27889?
Check whether you run github.com/nats-io/nats-server (Go), github.com/nats-io/nats-server/v2 (Go) or Red Hat Multicluster Global Hub 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/nats-io/nats-server/v2 (Go): upgrade to 2.11.14, 2.12.5 or later
    go get github.com/nats-io/nats-server/v2@v2.12.5

Technical details

A vulnerability exists in the NATS Server WebSocket implementation (wsRead in server/websocket.go) due to a missing sanity check on 64-bit extended payload lengths. The server fails to validate that the most significant bit (MSB) of the length field is zero as required by RFC 6455. When an attacker sends a frame with the MSB set, the uint64-to-int conversion results in a negative value that bypasses bounds clamping logic, eventually triggering an unrecovered slice bounds out-of-range panic in the Go runtime. This occurs before authentication, allowing any network-reachable attacker to terminate the nats-server process. The issue is fixed in versions 2.11.14 and 2.12.5.

Affected products

  • NATS.io NATS Server >= 2.2.0, < 2.11.14; >= 2.12.0, < 2.12.5
  • Red Hat Multicluster Global Hub 1.4.5, 1.5.4, 1.6.2

Identifiers

  • CVE-2026-27889
  • GHSA-pq2q-rcw4-3hr6
  • GO-2026-4841

Timeline

  • 2026-03-09: patched: Internal fix date identified in advisory
  • 2026-03-25: disclosed: Public disclosure of CVE-2026-27889
  • 2026-05-28: advisory: Red Hat released security updates for Multicluster Global Hub

References

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