CVE-2026-102281: NestJS denial of service via deeply nested microservice message pattern

CVE-2026-102281 · Severity: high · CVSS 7.5 · Published 2026-09-28

NestJS is a framework for building scalable Node.js server applications, commonly used to build backend APIs and microservices. When using TCP or RabbitMQ transport protocols, a malicious message containing a deeply nested object structure can crash the microservice, causing a denial of service. An attacker with network access to the TCP port or access to the RabbitMQ queue can trigger this crash on demand.

Technologies: NestJS Nest. Vendors: NestJS, npm.

Quick answers

Is CVE-2026-102281 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-102281 being exploited in the wild.
How severe is CVE-2026-102281?
High severity, with a CVSS score of 7.5, published 28 September 2026.
Which products and versions are affected?
NestJS Nest Before 11.2.4 and 12.0.2; @nestjs/microservices (npm) SEMVER:introduced=0,fixed=11.2.4.
Is there a fix for CVE-2026-102281?
Yes. @nestjs/microservices (npm): upgrade to 11.2.4 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-102281 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-102281?
Check whether you run NestJS Nest or @nestjs/microservices (npm) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • @nestjs/microservices (npm): upgrade to 11.2.4 or later
    npm install @nestjs/microservices@11.2.4

Technical details

The vulnerability exists in ServerTCP#handleMessage and ServerRMQ#handleMessage, which pass client-controlled message patterns directly to JSON.stringify without validation. Sufficiently deep nesting triggers a RangeError (Maximum call stack size exceeded), and the unhandled promise rejection terminates the Node.js process. Only TCP and RabbitMQ transports are affected; other transports are unaffected because they receive patterns as strings. Fixes are available in versions 11.2.4 and 12.0.2.

Affected products

  • NestJS Nest Before 11.2.4 and 12.0.2

Identifiers

  • CVE-2026-102281
  • GHSA-m8vh-jmq9-5rjg

Timeline

  • 2026-09-28: disclosed
  • 2026-09-14: patched: Fix committed to master (11.2.4) and backport to 12.0.2

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.