VDB
Sign up
MEDIUM6.4

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.15

Details

### 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

Go/github.com/nats-io/nats-server/v2
Introduced in: 0Fixed in: 2.11.15
Fixgo get github.com/nats-io/nats-server/v2@v2.11.15
Go/github.com/nats-io/nats-server/v2
Introduced in: 2.12.0-RC.1Fixed in: 2.12.6
Fixgo get github.com/nats-io/nats-server/v2@v2.12.6
Go/github.com/nats-io/nats-server
Introduced in: 0

No fixed version published yet for github.com/nats-io/nats-server (go modules). Pin to a known-safe version or switch to an alternative.

References