CVE-2026-97705 Denegación de servicio sin autenticación en Moleculer por longitud negativa en el parser TCP
Antes de 0.14.36 y 0.15.2, Parser._write en src/transporters/tcp/parser.js leía la longitud del paquete con Buffer.prototype.readInt32BE como valor con signo, por lo que un par remoto no autenticado podía enviar un valor negativo que hacía que packet.slice(length) devolviera el búfer sin cambios mientras el bucle while (packet.length 0) continuaba indefinidamente. El bucle síncrono bloqueaba el event loop de Node.js y dejaba sin respuesta todos los servicios del proceso hasta reiniciarlo. Se requiere el…
CVSS 3.1
- Probabilidad de explotación · EPSS del 09/110,4 % · percentil 28
- Explotada activamenteNo confirmada
- Exploit públicoNo conocido
Afectados
moleculerjs moleculer
>= 0.15.0, < 0.15.2< 0.14.36
Qué hacer
- Verificá si usás moleculer y en qué versión.
- Actualizá a la versión corregida que indique el fabricante en su aviso o aplicá su mitigación.
- Revisá registros y accesos de los sistemas expuestos para descartar un uso previo.
Calculadora CVSS
CVSS 3.1 · 7.5 ALTA
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- Vector de ataqueRed
- Complejidad del ataqueBaja
- Privilegios requeridosNinguno
- Interacción del usuarioNinguna
- AlcanceSin cambio
- ConfidencialidadNinguna
- IntegridadNinguna
- DisponibilidadAlta
Descripción original
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.
Referencias (5)
- github.com/moleculerjs/moleculer/security/advisories/GHSA-h89v-g948-47vp
- github.com/moleculerjs/moleculer/commit/168ecbdc245c9a9d1dc4ef9b8a81dbae38ee3063
- github.com/moleculerjs/moleculer/commit/914074e502ae403a0338ad168b45b16d6bcc3e44
- github.com/moleculerjs/moleculer/releases/tag/v0.14.36
- github.com/moleculerjs/moleculer/releases/tag/v0.15.2
Resumen traducido automáticamente de la descripción original. Fuente: Nureq Monitor. Cómo funciona.