Every CVE Search/ Get API key

CVE-2022-26652

Arbitrary file write in nats-server

6.5 MediumFix available

NATS nats-server before 2.7.4 allows Directory Traversal (with write access) via an element in a ZIP archive for JetStream streams. nats-streaming-server before 0.24.3 is also affected.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
Low
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
High
Availability
None

Exploit likelihood

2.34%Up 1.5 points since Mar 10, 2022
90%50%10%1%

What each source reports

NVD Score used 6.5

NATS nats-server before 2.7.4 allows Directory Traversal (with write access) via an element in a ZIP archive for JetStream streams. nats-streaming-server before 0.24.3 is also affected.

Record
CVE-2022-26652
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
CVSS 2.0
4.0 MediumAV:N/AC:L/Au:S/C:N/I:P/A:N
Weakness
CWE-22
Updated
2026-11-02
CVE List No score

NATS nats-server before 2.7.4 allows Directory Traversal (with write access) via an element in a ZIP archive for JetStream streams. nats-streaming-server before 0.24.3 is also affected.

Record
CVE-2022-26652
Updated
2026-11-02
EUVDEUVD-2022-1345 No score

NATS nats-server before 2.7.4 allows Directory Traversal (with write access) via an element in a ZIP archive for JetStream streams. nats-streaming-server before 0.24.3 is also affected.

Record
EUVD-2022-1345
Updated
2026-11-03
GitHub AdvisoriesGHSA-6h3m-36w8-hv68 6.5

Arbitrary file write in nats-server

(This document is canonically: https://advisories.nats.io/CVE/CVE-2022-26652.txt)

Background

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

JetStream is the optional RAFT-based resilient persistent feature of NATS.

Problem Description

The JetStream streams can be backed up and restored via NATS. The backup format is a tar archive file. Inadequate checks on the filenames within the archive file permit a so-called "Zip Slip" attack in the stream restore.

NATS nats-server through 2022-03-09 (fixed in release 2.7.4) did not correctly sanitize elements of the archive file, thus a user of NATS could cause the NATS server to write arbitrary content to an attacker-controlled filename.

Affected versions

NATS Server:

  • 2.2.0 up to and including 2.7.3.
    • Introduced with JetStream Restore functionality
  • Fixed with nats-io/nats-server: 2.7.4
  • Docker image: nats https://hub.docker.com/_/nats
  • NB users of OS package files from our releases: a change in goreleaser defaults, discovered late in the release process, moved the install directory from /usr/local/bin to /usr/bin; we are evaluating the correct solution for subsequent releases, but not recutting this release.

NATS Streaming Server

  • 0.15.0 up to and including 0.24.2
  • Fixed with nats-io/nats-streaming-server: 0.24.3
  • Embeds a nats-server, but this server is the old approach which JetStream replaces, so unlikely (but not impossible) to be configured with JS support

Workarounds

  • Disable JetStream for untrusted users.
  • If only one NATS account uses JetStream, such that cross-user attacks are not an issue, and any user in that account with access to the JetStream API is fully trusted anyway, then appropriate sandboxing techniques will prevent exploit.
    • Eg, with systemd, the supplied util/nats-server-hardened.service example configuration demonstrates that NATS runs fine as an unprivileged user under ProtectSystem=strict and PrivateTmp=true restrictions; by only opening a ReadWritePaths hole for the JetStream storage area, the impact of this vulnerability is limited.

Solution

Upgrade the NATS server to at least 2.7.4.

We fully support the util/nats-server-hardened.service configuration for running a NATS server and encourage this approach.

Credits

This issue was reported (on 2022-03-07) to the NATS Maintainers by Yiming Xiang, TIANJI LAB of NSFOCUS.
Thank you / 谢谢你!

Record
GHSA-6h3m-36w8-hv68
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
Weakness
CWE-22
Updated
2026-11-02
OSVGHSA-6h3m-36w8-hv68 6.5

Arbitrary file write in nats-server

(This document is canonically: https://advisories.nats.io/CVE/CVE-2022-26652.txt)

Background

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

JetStream is the optional RAFT-based resilient persistent feature of NATS.

Problem Description

The JetStream streams can be backed up and restored via NATS. The backup format is a tar archive file. Inadequate checks on the filenames within the archive file permit a so-called "Zip Slip" attack in the stream restore.

NATS nats-server through 2022-03-09 (fixed in release 2.7.4) did not correctly sanitize elements of the archive file, thus a user of NATS could cause the NATS server to write arbitrary content to an attacker-controlled filename.

Affected versions

NATS Server:

  • 2.2.0 up to and including 2.7.3.
    • Introduced with JetStream Restore functionality
  • Fixed with nats-io/nats-server: 2.7.4
  • Docker image: nats https://hub.docker.com/_/nats
  • NB users of OS package files from our releases: a change in goreleaser defaults, discovered late in the release process, moved the install directory from /usr/local/bin to /usr/bin; we are evaluating the correct solution for subsequent releases, but not recutting this release.

NATS Streaming Server

  • 0.15.0 up to and including 0.24.2
  • Fixed with nats-io/nats-streaming-server: 0.24.3
  • Embeds a nats-server, but this server is the old approach which JetStream replaces, so unlikely (but not impossible) to be configured with JS support

Workarounds

  • Disable JetStream for untrusted users.
  • If only one NATS account uses JetStream, such that cross-user attacks are not an issue, and any user in that account with access to the JetStream API is fully trusted anyway, then appropriate sandboxing techniques will prevent exploit.
    • Eg, with systemd, the supplied util/nats-server-hardened.service example configuration demonstrates that NATS runs fine as an unprivileged user under ProtectSystem=strict and PrivateTmp=true restrictions; by only opening a ReadWritePaths hole for the JetStream storage area, the impact of this vulnerability is limited.

Solution

Upgrade the NATS server to at least 2.7.4.

We fully support the util/nats-server-hardened.service configuration for running a NATS server and encourage this approach.

Credits

This issue was reported (on 2022-03-07) to the NATS Maintainers by Yiming Xiang, TIANJI LAB of NSFOCUS.
Thank you / 谢谢你!

Record
GHSA-6h3m-36w8-hv68
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
Weakness
CWE-22
Updated
2026-11-02
OSVBIT-nats-2022-26652 No score

NATS nats-server before 2.7.4 allows Directory Traversal (with write access) via an element in a ZIP archive for JetStream streams. nats-streaming-server before 0.24.3 is also affected.

Record
BIT-nats-2022-26652
Updated
2026-11-02
OSV No score

NATS nats-server before 2.7.4 allows Directory Traversal (with write access) via an element in a ZIP archive for JetStream streams. nats-streaming-server before 0.24.3 is also affected.

Record
CVE-2022-26652
Updated
2026-11-02
OSVGO-2022-0351 No score

Arbitrary file write in nats-server in github.com/nats-io/nats-server

Arbitrary file write in nats-server in github.com/nats-io/nats-server

Record
GO-2022-0351
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
github.com/nats-io/nats-server/v2
Go
2.2.0 up to 2.7.4
2.7.4
github.com/nats-io/nats-streaming-server
Go
0.15.0 up to 0.24.3
0.24.3
nats
Bitnami
2.2.0 up to 2.7.4
2.7.4
github.com/nats-io/nats-server
Go
All versions None known

History

History
RecordedChangedSources
aliasesEUVD
first indexedCVE List, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2022-26652 is a medium vulnerability (CVSS 6.5) in Linuxfoundation Nats-server, published March 10, 2022. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 2.34%, the 83rd percentile. Fixed in github.com/nats-io/nats-server/v2 2.7.4.

References

Show 5 moreShow less
MoveEnter Open