Severity by source
AV:A/AC:L/PR:N/UI:N/S:C/C:L/I:H/A:L
Route/leafnode ports are internal so AV:A; a single PING triggers it (AC:L) with no credentials (PR:N); crossing into another account's context is S:C, enabling message injection (I:H) with limited read (C:L) and availability (A:L) impact.
Primary rating from Vendor (vendor:ubuntu).
CVSS VectorVendor: vendor:ubuntu
Lifecycle Timeline
7DescriptionCVE.org
[Unknown description]
AnalysisAI
Authentication bypass in NATS Server (nats-io/nats-server) lets an unauthenticated attacker on an adjacent network connect to the cluster (route) or leafnode listener and be silently dropped into the privileged no_auth_user account, bypassing the separate route/leafnode authorization. Any server configured with no_auth_user is affected up to the fixed releases (v2.11.16, v2.12.7, v2.14.0), enabling cross-account message injection over the internal route protocol. No public exploit identified at time of analysis, though the vendor's own regression test demonstrates the exact attack.
Technical ContextAI
NATS is a high-performance CNCF messaging system whose server multiplexes several distinct connection kinds on separate listeners: external CLIENT connections, inter-node ROUTER (cluster) connections, LEAF (leafnode) connections, and GATEWAY connections. The no_auth_user convenience option maps unauthenticated client sessions to a named account so external clients can connect without credentials. The root cause is a CWE-287 (Improper Authentication) flaw in the protocol parser (server/parser.go): the no_auth_user fast-path fired whenever the first protocol command was not CONNECT, without checking the connection kind. As a result a route/leafnode/gateway peer that opened a socket and sent 'PING' (or an RMSG) instead of the mandatory CONNECT handshake was treated as the no_auth_user client, sidestepping the dedicated cluster/leafnode authorization block. The fix constrains the fast-path with 'c.kind == CLIENT' and forces ROUTER/LEAF (and gated GATEWAY) connections to always begin with a CONNECT message.
RemediationAI
Vendor-released patch: upgrade to v2.11.16, v2.12.7, or v2.14.0 depending on your release line (release notes at https://github.com/nats-io/nats-server/releases/tag/v2.11.16, .../v2.12.7, and .../v2.14.0; advisory GHSA-38x3-76xf-cq45). If immediate patching is not possible, the most direct compensating control is to remove or unset the no_auth_user option, which closes the fast-path entirely - the trade-off is that legitimate credential-less client access is lost and clients must authenticate. Additionally, restrict the cluster and leafnode listener ports to trusted internal networks only (firewall/security-group rules or bind to internal interfaces) so untrusted adjacent hosts cannot reach them, and ensure route/leafnode authorization blocks are configured; these reduce reachability but do not fix the underlying bypass, so patching remains the durable remediation.
More in Nats Server
View allNATS Server 2.x before 2.2.0 and JWT library before 2.0.1 have Incorrect Access Control because Import Token bindings ar
The JWT library in NATS nats-server before 2.1.9 has Incorrect Access Control because of how expired credentials are han
This affects all versions of package github.com/nats-io/nats-server/server. Rated high severity (CVSS 7.5), this vulnera
NATS nats-server before 2.7.2 has Incorrect Access Control. Rated high severity (CVSS 8.8), this vulnerability is remote
Denial of service in NATS Server (nats-server) MQTT handler allows a remote, unauthenticated client to exhaust server me
Remote denial of service in the NATS Server (nats-io/nats-server) leafnode subsystem allows unauthenticated attackers to
An integer overflow in NATS Server before 2.0.2 allows a remote attacker to crash the server by sending a crafted reques
Remote denial-of-service in NATS Server (nats-server) affects deployments with the WebSocket listener enabled but MQTT d
NATS.io is a high performance open source pub-sub distributed communication technology, built for the cloud, on-premise,
The JWT library in NATS nats-server before 2.1.9 allows a denial of service (a nil dereference in Go code). Rated high s
Protocol injection in NATS Server MQTT support allows an authenticated MQTT client to smuggle control characters (tab, n
NATS nats-server before 2.7.4 allows Directory Traversal (with write access) via an element in a ZIP archive for JetStre
Same weakness CWE-287 – Improper Authentication
View allSame technique Authentication Bypass
View allVendor StatusVendor
SUSE
Severity: ImportantShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-42375