Skip to content

GHSA-v722-jcv5-w7mc BIT-nats-2026-33216 CVE-2026-33216 GO-2026-4836

NATS has MQTT plaintext password disclosure

High Go
Severity
8.6 / 10
High · CVSS 3.1
Exploit chance (EPSS)
0.37%
Chance of exploitation in the next 30 days. Higher than 31.13% of scored vulnerabilities.
Known exploited
No
Not in CISA's catalog
Weakness
CWE-256 Plaintext Storage of a Password
Fix
2.11.15
Upgrade github.com/nats-io/nats-server/v2 to this version or later

Description

Background

NATS.io is a high performance open source pub-sub distributed communication technology, built for the cloud, on-premise, IoT, and edge computing.

The nats-server provides an MQTT client interface.

Problem Description

For MQTT deployments using usercodes/passwords: MQTT passwords are incorrectly classified as a non-authenticating identity statement (JWT) and exposed via monitoring endpoints.

Affected Versions

Any version before v2.12.6 or v2.11.15

Workarounds

Ensure monitoring end-points are adequately secured.

Best practice remains to not expose the monitoring endpoint to the Internet or other untrusted network users.

Affected versions

Go

PackageVulnerableFixed in
github.com/nats-io/nats-server
all versions
No fix yet
github.com/nats-io/nats-server/v2
< 2.11.15
2.11.15
github.com/nats-io/nats-server/v2
>= 2.12.0-RC.1, < 2.12.6
2.12.6
github.com/nats-io/nats-server/v2
< 2.11.15
>= 2.12.0-RC.1, < 2.12.6
2.11.15
2.12.6

How to fix

Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.

github.com/nats-io/nats-server/v2 Go → 2.11.15

go
go get github.com/nats-io/nats-server/v2@v2.11.15 && go mod tidy

Severity breakdown

CVSS 3.1 8.6

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Changed
Confidentiality
High
Integrity
None
Availability
None

Weakness

CWE-256: Plaintext Storage of a Password

The product stores a password in plaintext within resources such as memory or files.

How to prevent it
  • Architecture and Design: Avoid storing passwords in easily accessible locations.
  • Architecture and Design: Consider storing cryptographic hashes of passwords as an alternative to storing in plaintext.
  • A programmer might attempt to remedy the password management problem by obscuring the password with an encoding function, such as base 64 encoding, but this effort does not adequately protect the password because the encoding can be detected and decoded easily.

References

Timeline

  1. Published
  2. Last updated by the source
  3. Latest EPSS score
AdvisorySeverityWhy it's related
GHSA-pq2q-rcw4-3hr6
NATS: Pre-auth remote server crash via WebSocket frame length overflow in wsRead
High Also affects github.com/nats-io/nats-server
GHSA-3f24-pcvm-5jqc
NATS has mTLS verify_and_map authentication bypass via incorrect Subject DN matching
Medium Also affects github.com/nats-io/nats-server
GHSA-55h8-8g96-x4hj
NATS: Leafnode connections allow spoofing of Nats-Request-Info identity headers
Medium Also affects github.com/nats-io/nats-server
GHSA-pwx7-fx9r-hr4h
NATS Server: Incomplete Stripping of Nats-Request-Info Header Allows Identity Spoofing
Medium Also affects github.com/nats-io/nats-server
GHSA-9983-vrx2-fg9c
NATS JetStream has an authorization bypass through its Management API
Medium Also affects github.com/nats-io/nats-server
GHSA-8r68-gvr4-jh7j
NATS is vulnerable to pre-auth DoS through WebSockets client service
Medium Also affects github.com/nats-io/nats-server
GHSA-vprv-35vv-q339
NATS has pre-auth server panic via leafnode handling
High Also affects github.com/nats-io/nats-server
GHSA-jxxm-27vp-c3m5
NATS allows MQTT clients to bypass ACL checks
Medium Also affects github.com/nats-io/nats-server
Is this in your code?

MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.

Check your repos with MergeHarbor