CVE-2026-102281 json
Nest: Remote process termination via a deeply nested microservice message pattern
published 2026-09-28 41 d ago modified 2026-09-30 39 d ago also GHSA-m8vh-jmq9-5rjg , EUVD-2026-88511
- cvss
- 7.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.6%
- EPSS 0.6% chance of exploitation in 30 days, percentile 48%
- public exploits
- 0
- none known
Summary
Nest is a framework for building scalable Node.js server-side applications. Prior to 11.2.4 and 12.0.2, a single message with a deeply nested object in its pattern can terminate a NestJS microservice using the TCP or RabbitMQ transport. ServerTCP#handleMessage and ServerRMQ#handleMessage pass a client-controlled non-string pattern to JSON.stringify to derive the handler lookup key; sufficiently deep nesting throws RangeError: Maximum call stack size exceeded, and the unhandled promise rejection terminates Node.js under its default behavior. An attacker who can reach the TCP port or publish to the consumed RabbitMQ queue or exchange can crash the service on demand; other transports are not affected because their patterns arrive as strings. This issue is fixed in versions 11.2.4 and 12.0.2.
Patch / fix
- npm @nestjs/microservices 11.2.4, 12.0.2
- github.com/nestjs/nest@aa97b51 commit
- github.com/nestjs/nest@e9dcd4c commit
- github.com/nestjs/nest#17737 pull request
- github.com/nestjs/nest/releases/tag/v11.2.4 release
- github.com/nestjs/nest/releases/tag/v12.0.2 release
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 40 d ago
Exploit prediction
0.59% chance of exploitation in the next 30 days, higher than 48% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/nestjs/nest/security/advisories/GHSA-m8vh-jmq9-5rjg referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
| GitHub | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | @nestjs/microservices | <11.2.4 >=12.0.0, <12.0.2 |
11.2.4 12.0.2 |
Affected products
- nestjs nest
Classification
References
-
github.com
/nestjs/nest/pull/17737
web
-
github.com
/nestjs/nest/commit/aa97b5144d8dff1ce700aac521eb86449a679d6f
web
-
github.com
/nestjs/nest/commit/e9dcd4c7ac64361fbfe79461da85f5b3fc3e02da
web
-
github.com
/nestjs/nest/security/advisories/GHSA-m8vh-jmq9-5rjg
exploit, web
-
github.com
/nestjs/nest/releases/tag/v11.2.4
web
-
github.com
/nestjs/nest/releases/tag/v12.0.2
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-102281
advisory
-
github.com
/nestjs/nest
package
Sources
- CVE List CVE-2026-102281
- GitHub Advisory GHSA-m8vh-jmq9-5rjg
- NVD CVE-2026-102281
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.