Skip to main content

MiroTalk P2P EUVDEUVD-2026-116542

| CVE-2026-121535 LOW
Improper Restriction of Excessive Authentication Attempts (CWE-307)
2026-11-03 VulDB GHSA-96v4-jjm6-m9vg
2.9
CVSS 4.0 · Vendor: VulDB
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Discover locked MiroTalk room
  2. Exploit
    Send repeated checkPassword guesses
  3. Execution
    Brute-force password without lockout
  4. Impact
    Join private meeting room

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Brute-force prevention, rate limiting
Exploitation Conditions

Exploitation requires the target MiroTalk P2P room to be password-locked (peers[channel]['lock'] === true with a password set); against such a room an unauthenticated remote attacker (PR:N) can send repeated pre-join 'checkPassword' socket.io events, which in versions up to 2.0.87 performed a plain password comparison with no attempt counter or lockout, enabling unlimited guessing. Limiting factors: the attack only applies to password-locked rooms, practical success depends on the room password being weak or guessable (the input states exploitation is difficult/highly complex), and the attacker must know or discover a valid room ID; rooms without a password lock are unaffected.

Impact

This is a medium-severity, not an emergency-grade, issue. The vendor CVSS 4.0 score is 6.3 (CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:P): network-reachable and unauthenticated (PR:N), but high attack complexity (AC:H) and only limited confidentiality impact (VC:L) with no integrity or availability impact. The weakness (CWE-307) is a missing lockout/throttle on the room-password check, confirmed by the patch diff which introduces per-IP+room failure counting and a 15-minute lockout. The input explicitly states exploitation is difficult/highly complex, which is consistent with AC:H and with the fact that practical success still depends on the room password being weak or guessable. No EPSS score is provided and the CVE is not on CISA KEV, so there is no signal of widespread or active exploitation. A public PoC reference exists (a 'checkpassword-oracle' write-up) but it is not verified as working exploit code, so POC availability must not be read as active exploitation. The vuln.today decision label is 'this_month', indicating a patch-on-normal-cadence priority rather than act_now/emergency. Net: a real but bounded brute-force/oracle weakness against locked rooms; worth patching this cycle, not a drop-everything event.

Exploit ScenarioDerived

An attacker who knows or guesses a MiroTalk P2P room ID targets a password-locked room and repeatedly submits candidate passwords via the pre-join checkPassword socket event, which in vulnerable versions applies no rate limiting or lockout. By iterating guesses unthrottled, the attacker can brute-force a weak room password and join a private meeting. A public PoC reference describing a checkPassword password oracle exists, but it is not verified as working exploit code.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Nov 03, 2026

Password guessing against locked MiroTalk P2P meeting rooms is effectively unlimited in versions up to 2.0.87, because the pre-join 'checkPassword' Socket.IO handler in app/src/server.js compares the supplied password with a plain string equality check and keeps no attempt counter or lockout, letting unauthenticated remote attackers fire guesses at will and use the 'OK'/'KO' reply as an oracle. Exposure is narrow: the target room must actually be password-locked and its room ID known or discoverable, and success still depends on the room password being weak or guessable, which is why this is rated medium severity rather than urgent. A public PoC reference exists but is not verified as working exploit code, there is no confirmed active exploitation (CISA KEV), and the vendor has released a fix in 2.1.38.

RemediationAI

Vendor-released patch: 2.1.38 - upgrade MiroTalk P2P to 2.1.38 or later, which ships the new app/src/roomPassword.js module enforcing 5 failed attempts per IP-and-room within a 15-minute window followed by a 15-minute block, constant-time password comparison, and removal of the room password from debug log output; the change is applied both to the pre-join 'checkPassword' path and to the locked-room join handler. Because the advisory's stated affected ceiling (2.0.87) and the commit's version bump (2.1.37 → 2.1.38) do not line up, upgrade any instance older than 2.1.38 rather than relying on the version string. Until patched, the practical exposure is bounded by password strength: choose long, random, non-guessable room passwords so the unthrottled guessing has no realistic chance of success, since rooms without a password lock are unaffected, and treat the room password as the only barrier - the pre-fix code offers no attempts-based protection of its own. The public PoC reference at https://github.com/waterhunter2000-svg/vulnerability-reports/blob/main/04-mirotalk-checkpassword-oracle.md is not verified as working exploit code but describes the guessing oracle, so prioritize internet-facing instances that host password-locked rooms.

Affected VersionsENISA

MiroTalk P2P 2.0.0
MiroTalk P2P 2.0.39
MiroTalk P2P 2.0.4
MiroTalk P2P 2.0.37
MiroTalk P2P 2.0.81
MiroTalk P2P 2.0.11
MiroTalk P2P 2.0.74
MiroTalk P2P 2.0.16
MiroTalk P2P 2.0.35
MiroTalk P2P 2.0.8
MiroTalk P2P 2.0.13
MiroTalk P2P 2.0.55
MiroTalk P2P 2.0.79
MiroTalk P2P 2.0.28
MiroTalk P2P 2.0.24
MiroTalk P2P 2.0.48
MiroTalk P2P 2.0.18
MiroTalk P2P 2.0.36
MiroTalk P2P 2.0.57
MiroTalk P2P 2.0.68
MiroTalk P2P 2.0.85
MiroTalk P2P 2.0.38
MiroTalk P2P 2.0.14
MiroTalk P2P 2.0.87
MiroTalk P2P 2.0.30
MiroTalk P2P 2.0.33
MiroTalk P2P 2.0.59
MiroTalk P2P 2.0.7
MiroTalk P2P 2.0.10
MiroTalk P2P 2.0.66
MiroTalk P2P 2.0.60
MiroTalk P2P 2.0.53
MiroTalk P2P 2.0.52
MiroTalk P2P 2.0.26
MiroTalk P2P 2.0.19
MiroTalk P2P 2.0.50
MiroTalk P2P 2.0.80
MiroTalk P2P 2.0.34
MiroTalk P2P 2.0.6
MiroTalk P2P 2.0.77
MiroTalk P2P 2.0.51
MiroTalk P2P 2.0.12
MiroTalk P2P 2.0.64
MiroTalk P2P 2.0.75
MiroTalk P2P 2.0.49
MiroTalk P2P 2.0.20
MiroTalk P2P 2.0.69
MiroTalk P2P 2.0.22
MiroTalk P2P 2.0.62
MiroTalk P2P 2.0.56
MiroTalk P2P 2.0.2
MiroTalk P2P 2.0.58
MiroTalk P2P 2.0.67
MiroTalk P2P 2.0.71
MiroTalk P2P 2.0.54
MiroTalk P2P 2.0.65
MiroTalk P2P 2.0.29
MiroTalk P2P 2.0.73
MiroTalk P2P 2.0.72
MiroTalk P2P 2.0.76
MiroTalk P2P 2.0.44
MiroTalk P2P 2.0.31
MiroTalk P2P 2.0.78
MiroTalk P2P 2.0.3
MiroTalk P2P 2.0.82
MiroTalk P2P 2.0.40
MiroTalk P2P 2.0.9
MiroTalk P2P 2.0.27
MiroTalk P2P 2.0.46
MiroTalk P2P 2.0.21
MiroTalk P2P 2.0.15
MiroTalk P2P 2.0.86
MiroTalk P2P 2.0.84
MiroTalk P2P 2.0.45
MiroTalk P2P 2.0.47
MiroTalk P2P 2.0.5
MiroTalk P2P 2.0.70
MiroTalk P2P 2.0.23
MiroTalk P2P 2.0.43
MiroTalk P2P 2.0.41
MiroTalk P2P 2.0.61
MiroTalk P2P 2.0.32
MiroTalk P2P 2.0.83
MiroTalk P2P 2.0.42
MiroTalk P2P 2.0.25
MiroTalk P2P 2.0.17
MiroTalk P2P 2.0.63
MiroTalk P2P 2.0.1

Affected Packages

euvd mirotalk_p2p no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

MiroTalk P2P is a Node.js WebRTC meeting application built on Express and Socket.IO, where each room is tracked in a server-side 'peers' map holding a 'lock' flag and a 'password' value; the flaw is CWE-307 (Improper Restriction of Excessive Authentication Attempts). Before the fix, the 'checkPassword' socket event handler in app/src/server.js evaluated 'password == peers[room_id][\'password\']' and returned 'OK' or 'KO' to the caller with no per-client or per-room failure accounting, so an unauthenticated remote client (CVSS 4.0 vector PR:N, AV:N) could enumerate guesses indefinitely over a persistent Socket.IO connection. The committed patch (55bec1d05f931d2e43633d6d0b7274f79ec719dd) introduces a new app/src/roomPassword.js module that keys attempt state on 'IP|roomId', blocks further attempts after 5 failures within a 15-minute window for the remainder of that window, and clears the counter on success; it also replaces loose equality with SHA-256 digests compared via crypto.timingSafeEqual (removing a comparison-timing side channel) and removes the submitted password from the room debug log line, which is consistent with the 'Information Disclosure' tag attached to the report. The room-join path that validates channel_password for locked rooms was hardened the same way. AC:H reflects that the attacker must still guess a secret correctly; the trigger is a deliberately crafted pre-join event, not an automatic condition.

Know when Mirotalk P2P gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulDB) PRIMARY 2.9 MEDIUM
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:P
vuln.today AI 3.7 LOW

Network-reachable and unauthenticated (AV:N/PR:N/UI:N); AC:H because success is probabilistic and depends on a weak room password and the room being locked; only limited room-access confidentiality impact (C:L), no integrity/availability effect.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulDB).

CVSS VectorVendor: VulDB

Attack Vector
Network
Attack Complexity
High
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

3
Severity Changed
Nov 03, 2026 - 23:22 NVD
MEDIUM LOW
CVSS changed
Nov 03, 2026 - 23:22 NVD
6.3 (MEDIUM) 2.9 (LOW)
CVE Published
Nov 03, 2026 - 22:15 cve.org
MEDIUM 6.3

DescriptionCVE.org

A vulnerability was found in miroslavpejic85 MiroTalk P2P up to 2.0.87. This vulnerability affects the function checkPassword of the file app/src/server.js of the component Room Action Handler. The manipulation results in improper restriction of excessive authentication attempts. It is possible to launch the attack remotely. Attacks of this nature are highly complex. It is stated that the exploitability is difficult. The exploit has been made public and could be used. Upgrading to version 2.1.38 is able to resolve this issue. The patch is identified as 55bec1d05f931d2e43633d6d0b7274f79ec719dd. Upgrading the affected component is advised.

Threat Intelligence Overview

Prevalence
Low
niche self-hosted open-source WebRTC conferencing app, no enterprise footprint
Exploit
POC
Public exploit code exists
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity LOW
CISA KEV No
Public POC Yes
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +14
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy