Unauthenticated denial of service in Moleculer TCP transporter parser
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Denial of service
- Confidentiality · integrity · availability
- None · None · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-835.
Summary
Moleculer versions before 0.14.36 and from 0.15.0 before 0.15.2 are affected. The TCP transporter's packet parser reads a signed length field without rejecting negative values, so the parsing loop never exits (CWE-835). A remote unauthenticated peer can send such a packet when the TCP transporter is enabled and reachable, which blocks the Node.js event loop and makes every service in the process unresponsive until restart.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
Description from the CNA
Moleculer is a progressive microservices framework for Node.js. Prior to 0.14.36 and 0.15.2, Parser._write in src/transporters/tcp/parser.js used Buffer.prototype.readInt32BE to read a signed packet length, so a remote unauthenticated peer could supply a negative value that caused packet.slice(length) to return the unchanged buffer while the while (packet.length > 0) loop continued indefinitely. The synchronous loop blocked the Node.js event loop and made every service in the process unresponsive until restart. The TCP transporter must be enabled and reachable, and neither CRC validation nor maxPacketSize prevents the malformed length value. This issue is fixed in versions 0.14.36 and 0.15.2.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| moleculerjs | moleculer | 0.15.0 to before 0.15.2; before 0.14.36 | 0.15.2, 0.14.36 | Patch available | CNA |
- moleculer Vendormoleculerjs Affected 0.15.0 to before 0.15.2; before 0.14.36 Fixed in 0.15.2, 0.14.36 Patch available CNA
Remediation
Update moleculer to 0.14.36 or 0.15.2, the fixed releases for the affected ranges.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
- Fix · CNA moleculer (moleculerjs) Fixed in 0.15.2, 0.14.36
Vendor assessments
Timeline
- 2026-11-04 Threatist record created from CVE-2026-97705
- 2026-11-05 CISA SSVC decision points changed
- 2026-11-05 Priority changed: MEDIUM → LOW
- 2026-11-06 Affected versions changed · Red Hat
- 2026-11-06 CVSS score added · Red Hat
References
Other 5
- https://github.com/moleculerjs/moleculer/security/advisories/GHSA-h89v-g948-47vp
- https://github.com/moleculerjs/moleculer/commit/168ecbdc245c9a9d1dc4ef9b8a81dbae38ee3063
- https://github.com/moleculerjs/moleculer/commit/914074e502ae403a0338ad168b45b16d6bcc3e44
- https://github.com/moleculerjs/moleculer/releases/tag/v0.14.36
- https://github.com/moleculerjs/moleculer/releases/tag/v0.15.2
Sources
- CVE-2026-97705 · CVE Program
- CVE-2026-97705 · NVD
- FIRST EPSS
- CVE-2026-97705 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences