VULNERABILIDAD
CVE-2026-103936 Denegación de servicio en @libp2p/webrtc con un solo paquete STUN previo a la autenticación
Antes de 6.0.28, el listener webRTCDirect() de Node.js en @libp2p/webrtc procesa solicitudes STUN Binding sin autenticar antes de la autenticación PeerId y demás etapas. El request.ufrag controlado por el paquete se reutiliza como contraseña ICE sin validar longitud ni juego de caracteres, y una credencial corta provoca una excepción nativa no capturada que aborta el proceso con SIGABRT, permitiendo denegar el servicio con un solo paquete UDP remoto.
Alerta de Nureq Monitor
Detectada 15 OCT · 15:47
CVSS 3.1
7.5ALTAPROBABILIDAD DE EXPLOTACIÓN (EPSS)
0,5 % PERCENTIL 43
EXPLOTACIÓN ACTIVA
No confirmada
EXPLOIT PÚBLICO
No conocido
Qué es CVE-2026-103936
Antes de 6.0.28, el listener webRTCDirect() de Node.js en @libp2p/webrtc procesa solicitudes STUN Binding sin autenticar antes de la autenticación PeerId y demás etapas. El request.ufrag controlado por el paquete se reutiliza como contraseña ICE sin validar longitud ni juego de caracteres, y una credencial corta provoca una excepción nativa no capturada que aborta el proceso con SIGABRT, permitiendo denegar el servicio con un solo paquete UDP remoto.
Productos y versiones afectadas
libp2p js-libp2p
@libp2p webrtc
Qué hacer
- Verificá si usás js-libp2p y en qué versión: el rango afectado figura arriba.
- Actualizá a la versión corregida que indique el fabricante en su aviso (ver referencias) o aplicá la mitigación que publique.
- Revisá registros y accesos de los sistemas expuestos para descartar que se haya aprovechado antes de corregir.
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 ATAQUE (AV)
- Red
- COMPLEJIDAD DEL ATAQUE (AC)
- Baja
- PRIVILEGIOS REQUERIDOS (PR)
- Ninguno
- INTERACCIÓN DEL USUARIO (UI)
- Ninguna
- ALCANCE (S)
- Sin cambio
- CONFIDENCIALIDAD (C)
- Ninguna
- INTEGRIDAD (I)
- Ninguna
- DISPONIBILIDAD (A)
- Alta
Abrir la calculadora completa →
Descripción original
libp2p is a JavaScript implementation of the libp2p networking stack. Prior to 6.0.28, the @libp2p/webrtc webRTCDirect() Node.js listener processes unauthenticated STUN Binding Requests before PeerId authentication, Noise, muxing, protocol negotiation, connection creation, or connection-manager admission. The listener in packages/transport-webrtc/src/private-to-public/utils/stun-listener.ts forwards the packet-controlled request.ufrag into DirectRTCPeerConnection.setLocalDescription, where the value is reused as an ICE password without validating its required length and character set. A short credential causes node-datachannel or libdatachannel to raise an uncaught native invalid_argument and abort the process with SIGABRT, allowing a single remote UDP packet to deny service. The confirmed impact is process termination only, with no demonstrated memory corruption, code execution, browser impact, confidentiality impact, integrity impact, or connection-limit bypass. This issue is fixed in version 6.0.28.
Referencias
- github.com/libp2p/js-libp2p/security/advisories/GHSA-x3m2-6mg8-vj7fX_REFSOURCE_CONFIRM
- github.com/libp2p/js-libp2p/pull/3584X_REFSOURCE_MISC
- github.com/libp2p/js-libp2p/commit/68794c8e2e67d5f38da59e379dc051b2789e46f6X_REFSOURCE_MISC
- github.com/libp2p/js-libp2p/releases/tag/webrtc-v6.0.28X_REFSOURCE_MISC
Historial de la alerta
- VULNERABILIDAD Nueva vulnerabilidad detectada.
CÓMO SE HIZOResumen traducido automáticamente al español a partir de la descripción original. Ante dudas, la descripción original y las referencias del fabricante son la fuente de verdad. Cómo funciona.