CVE-2026-97705 json
Moleculer: Unauthenticated Denial of Service via negative length field in the TCP transporter packet parser
published 7d ago modified 2d ago also EUVD-2026-117036 , GHSA-h89v-g948-47vp
- cvss
- 7.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 29%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- npm moleculer 0.14.36, 0.15.2
Is CVE-2026-97705 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- none
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 6d ago
Exploit prediction
0.35% chance of exploitation in the next 30 days, higher than 29% of all scored CVEs (FIRST EPSS, 2026-11-11).
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 | moleculer | >=0.15.0-beta1, <0.15.2 <0.14.36 |
0.15.2 0.14.36 |
Affected products
- moleculerjs moleculer
Classification
- Weakness
-
- CWE-835 Loop with Unreachable Exit Condition
References
-
github.com
/moleculerjs/moleculer/commit/168ecbdc245c9a9d1dc4ef9b8a81dbae38ee3063
web
-
github.com
/moleculerjs/moleculer/commit/914074e502ae403a0338ad168b45b16d6bcc3e44
web
-
github.com
/moleculerjs/moleculer/security/advisories/GHSA-h89v-g948-47vp
web
-
github.com
/moleculerjs/moleculer/releases/tag/v0.14.36
web
-
github.com
/moleculerjs/moleculer/releases/tag/v0.15.2
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-97705
advisory
-
github.com
/moleculerjs/moleculer
package
Sources
- CVE List CVE-2026-97705
- GitHub Advisory GHSA-h89v-g948-47vp
- NVD CVE-2026-97705
Fencer Intel 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.