Skip to content
Heist/ feed
Back to feed
Medium

nats-server websockets are vulnerable to pre-auth memory DoS

Type: advisorySources: OSV

NATS-Server is a High-Performance server for NATS.io, a cloud and edge native messaging system. The WebSockets handling of NATS messages handles compressed messages via the WebSockets negotiated compression. Prior to versions 2.11.2 and 2.12.3, the implementation bound the memory size of a NATS message but did not independently bound the memory consumption of the memory stream when constructing a NATS message which might then fail validation for size reasons. An attacker can use a compression bomb to cause excessive memory consumption, often resulting in the operating system terminating the server process. The use of compression is negotiated before authentication, so this does not require valid NATS credentials to exploit. The fix, present in versions 2.11.2 and 2.12.3, was to bounds the decompression to fail once the message was too large, instead of continuing on. The vulnerability only affects deployments which use WebSockets and which expose the network port to untrusted end-points.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-27571
Confirmed fixed CVEs
Not specified
Updated in this feed
5 Nov 2026, 05:39 UTC · Revision 1

Source evidence

nats-server websockets are vulnerable to pre-auth memory DoS

core-osv · Original source

Published 24 Feb 2026, 15:59 UTC

NATS-Server is a High-Performance server for NATS.io, a cloud and edge native messaging system. The WebSockets handling of NATS messages handles compressed messages via the WebSockets negotiated compression. Prior to versions 2.11.2 and 2.12.3, the implementation bound the memory size of a NATS message but did not independently bound the memory consumption of the memory stream when constructing a NATS message which might then fail validation for size reasons. An attacker can use a compression bomb to cause excessive memory consumption, often resulting in the operating system terminating the server process. The use of compression is negotiated before authentication, so this does not require valid NATS credentials to exploit. The fix, present in versions 2.11.2 and 2.12.3, was to bounds the decompression to fail once the message was too large, instead of continuing on. The vulnerability only affects deployments which use WebSockets and which expose the network port to untrusted end-points.

osv:CVE-2026-27571
Complete source record
{
  "id": "7ed727724b7f752dae99a4e1c02852b738030c137d1a29daa3b3beb12742b24c",
  "url": "https://osv.dev/vulnerability/CVE-2026-27571",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "nats-server websockets are vulnerable to pre-auth memory DoS",
    "summary": "NATS-Server is a High-Performance server for NATS.io, a cloud and edge native messaging system. The WebSockets handling of NATS messages handles compressed messages via the WebSockets negotiated compression. Prior to versions 2.11.2 and 2.12.3, the implementation bound the memory size of a NATS message but did not independently bound the memory consumption of the memory stream when constructing a NATS message which might then fail validation for size reasons. An attacker can use a compression bomb to cause excessive memory consumption, often resulting in the operating system terminating the server process. The use of compression is negotiated before authentication, so this does not require valid NATS credentials to exploit. The fix, present in versions 2.11.2 and 2.12.3, was to bounds the decompression to fail once the message was too large, instead of continuing on. The vulnerability only affects deployments which use WebSockets and which expose the network port to untrusted end-points.",
    "evidence": "osv:CVE-2026-27571",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-27571",
      "aliases": [
        "BIT-nats-2026-27571",
        "CVE-2026-27571",
        "GHSA-qrvq-68c2-7grw",
        "GO-2026-4533"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/nats-io/nats-server",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "2d97cb7d9d27f1f07b4851e85289ea16841d2e0b"
                },
                {
                  "introduced": "fc6ec648d806652d282d2f0edb6cb9f22c895572"
                },
                {
                  "fixed": "450a519adf9c53e3d86623bb423dcad5e658ae78"
                },
                {
                  "fixed": "f77fb7c4535e6727cc1a2899cd8e6bbdd8ba2017"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:linuxfoundation:nats-server:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "2.11.12"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "cpe": "cpe:2.3:a:linuxfoundation:nats-server:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "2.12.0"
                      },
                      {
                        "fixed": "2.12.3"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "range": [
                      {
                        "fixed": "f77fb7c4535e6727cc1a2899cd8e6bbdd8ba2017"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "2d97cb7d9d27f1f07b4851e85289ea16841d2e0b"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "v2.11.12"
                  },
                  {
                    "range": [
                      {
                        "fixed": "450a519adf9c53e3d86623bb423dcad5e658ae78"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "v2.12.3"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v2.11.12-RC.7",
            "v2.11.12-RC.6",
            "v2.11.12-RC.5",
            "v2.12.2",
            "v2.11.12-RC.4",
            "v2.11.12-RC.3",
            "v2.11.12-RC.2",
            "v2.11.12-RC.1",
            "v2.11.11",
            "v2.12.3-RC.5",
            "v2.12.3-RC.4",
            "v2.12.3-RC.3",
            "v2.12.3-RC.2",
            "v2.12.3-RC.1",
            "v2.12.2-RC.4",
            "v2.11.11-RC.4",
            "v2.12.2-RC.3",
            "v2.11.11-RC.3",
            "v2.12.1",
            "v2.12.2-RC.2",
            "v2.11.11-RC.2",
            "v2.11.11-RC.1",
            "v2.12.2-RC.1",
            "v2.11.10",
            "v2.12.0",
            "v2.12.1-RC.5",
            "v2.12.1-RC.4",
            "v2.12.1-RC.3",
            "v2.12.1-RC.2",
            "v2.12.1-RC.1",
            "v2.11.10-RC.1",
            "v2.11.9",
            "v2.11.9-RC.3",
            "v2.11.9-RC.2",
            "v2.11.9-RC.1",
            "v2.11.8",
            "v2.11.8-RC.1",
            "v2.11.7",
            "v2.11.7-RC.3",
            "v2.11.7-RC.2",
            "v2.11.7-RC.1",
            "v2.11.6",
            "v2.11.6-RC.1",
            "v2.11.5",
            "v2.11.5-RC.4",
            "v2.11.5-RC.3",
            "v2.11.5-RC.2",
            "v2.11.5-RC.1",
            "v2.11.4",
            "v2.11.4-RC.3",
            "v2.11.4-RC.2",
            "v2.11.4-RC.1",
            "v2.11.3",
            "v2.11.3-RC.2",
            "v2.11.3-RC.1",
            "v2.11.2",
            "v2.11.2-RC.3",
            "v2.11.2-RC.2",
            "v2.11.2-RC.1",
            "v2.11.0",
            "v2.11.0-RC.5",
            "v2.11.0-RC.4",
            "v2.11.0-RC.3",
            "v2.11.0-RC.2",
            "v2.11.0-RC.1",
            "v2.10.3",
            "v2.10.2",
            "v2.10.1",
            "v2.10.0",
            "v2.9.22",
            "v2.9.21",
            "v2.9.20",
            "v2.9.19",
            "v2.9.18",
            "v2.9.17",
            "v2.9.16",
            "v2.9.15",
            "v2.9.14",
            "v2.9.12",
            "v2.9.11",
            "v2.9.10",
            "v2.9.9",
            "v2.9.8",
            "v2.9.7",
            "v2.9.6",
            "v2.9.5",
            "v2.9.4",
            "v2.9.3",
            "v2.9.2",
            "v2.9.1",
            "v2.9.0",
            "v2.8.4",
            "v2.8.3",
            "v2.8.2",
            "v2.8.1",
            "v2.8.0",
            "v2.7.4",
            "v2.7.3",
            "v2.7.2",
            "v2.7.1",
            "v2.7.0",
            "v2.7.0-rc2",
            "v2.7.0-rc1",
            "v2.6.6",
            "v2.6.5",
            "v2.6.4",
            "v2.6.3",
            "v2.6.2",
            "v2.6.1",
            "v2.6.0",
            "v2.5.0",
            "v2.4.0",
            "v2.3.4",
            "v2.3.3",
            "v2.3.2",
            "v2.3.1",
            "v2.3.0",
            "v2.2.6",
            "v2.2.5",
            "v2.2.4",
            "v2.2.3",
            "v2.2.2",
            "v2.2.1",
            "v2.2.0",
            "v2.1.7",
            "v2.1.6",
            "v2.1.4",
            "v2.1.2",
            "v2.1.0",
            "v2.0.4",
            "v2.0.2",
            "v2.0.0",
            "v2.0.0-RC19",
            "v2.0.0-RC14",
            "v1.3.0",
            "v1.2.0",
            "v1.1.0",
            "v1.0.6",
            "v1.0.4",
            "v1.0.2",
            "v1.0.0",
            "v0.9.6",
            "v0.9.4",
            "v0.9.2",
            "v0.8.1",
            "v0.8.0",
            "v0.7.2",
            "v0.7.0",
            "v0.6.8",
            "v0.6.6",
            "v0.6.4",
            "v0.6.2",
            "v0.6.0",
            "v0.5.6",
            "v0.5.4",
            "v0.5.2",
            "v0.5.1"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-27571.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:42.888838374Z",
      "provider": "osv",
      "references": [
        "https://github.com/nats-io/nats-server/releases/tag/v2.11.12",
        "https://github.com/nats-io/nats-server/releases/tag/v2.12.3",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/27xxx/CVE-2026-27571.json",
        "https://github.com/nats-io/nats-server/security/advisories/GHSA-qrvq-68c2-7grw",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-27571",
        "https://github.com/nats-io/nats-server/commit/f77fb7c4535e6727cc1a2899cd8e6bbdd8ba2017"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-409",
          "CWE-770"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/27xxx/CVE-2026-27571.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-27571",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 510770,
  "published_at": "2026-02-24T15:59:17.926+00:00"
}