GHSA-55h8-8g96-x4hj
NATS: Leafnode connections allow spoofing of Nats-Request-Info identity headers
Quick fix
GHSA-55h8-8g96-x4hj — github.com/nats-io/nats-server/v2: upgrade to the fixed version with the command below.
go get github.com/nats-io/nats-server/v2@v2.11.15Details
### 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 allows hub/spoke topologies using "leafnode" connections by other nats-servers. NATS messages can have headers.
### Problem Description
The nats-server offers a `Nats-Request-Info:` message header, providing information about a request. This is supposed to provide enough information to allow for account/user identification, such that NATS clients could make their own decisions on how to trust a message, provided that they trust the nats-server as a broker.
A leafnode connecting to a nats-server is not fully trusted unless the system account is bridged too. Thus identity claims should not have propagated unchecked.
Thus NATS clients relying upon the Nats-Request-Info: header could be spoofed.
Does not directly affect the nats-server itself, but the CVSS Confidentiality and Integrity scores are based upon what a hypothetical client might choose to do with this NATS header.
### Affected Versions
Any version before v2.12.6 or v2.11.15
### Workarounds
None.
Are you affected?
Enter the version of the package you're using.
Affected packages
0Fixed in: 2.11.15go get github.com/nats-io/nats-server/v2@v2.11.152.12.0-RC.1Fixed in: 2.12.6go get github.com/nats-io/nats-server/v2@v2.12.60No fixed version published yet for github.com/nats-io/nats-server (go modules). Pin to a known-safe version or switch to an alternative.