Skip to main content

Rocket.Chat CVE-2026-65645

| EUVDEUVD-2026-63805 MEDIUM
Improper Input Validation (CWE-20)
2026-08-21 hackerone GHSA-gw74-gwm4-8crp
4.3
CVSS 3.1 · Vendor: hackerone
View

Attack ChainAIDerived

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

  1. Recon
    Authenticate with any Rocket.Chat account
  2. Delivery
    Open DDP WebSocket session to target instance
  3. Exploit
    Call getThreadsList with rid: {"$gt": ""} MongoDB operator
  4. Install
    Authorization resolves to attacker-accessible room, MongoDB query fans out system-wide
  5. C2
    Harvest private thread IDs from all rooms
  6. Execute
    Call getThreadMessages with operator-injected tmid values
  7. Impact
    Exfiltrate full private thread content

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
Exploitation Conditions

Exploitation requires a valid Rocket.Chat user account at any privilege level - there is no unauthenticated exploitation path, as confirmed by CVSS PR:L. No special role, administrator permissions, or non-default server configuration is required beyond possessing an active session. The attack targets the DDP WebSocket interface, which is the standard real-time communication channel enabled by default on every Rocket.Chat deployment; it is not a feature that must be explicitly turned on. The attacker must additionally have legitimate membership in at least one room so that the authorization check resolves successfully before the fan-out query executes. What limits exploitation: the attacker must be able to reach the WebSocket endpoint (network access required); completely air-gapped or VPN-only deployments reduce exposure to insider threats only. The confidentiality impact is scoped to thread content (parent messages and replies) - non-threaded channel messages are not exposed through this specific method pair.

Impact

The vendor-assigned CVSS of 4.3 (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N) likely understates the confidentiality impact by rating C:L. The injection causes MongoDB queries to fan out across ALL rooms - enabling full read of all private thread content system-wide - which is more accurately represented as C:H, yielding a base score of approximately 6.5. EPSS at 0.14% (4th percentile) reflects low observed exploitation probability, and there is no CISA KEV listing. However, the attack requires only a valid Rocket.Chat account (PR:L), no special configuration, and is executable over a standard WebSocket session - the effective barrier is far lower than the EPSS percentile suggests for a newly disclosed CVE. The vulnerability mechanism is inferable from the public GitHub PR diff at pull/41814, which shows the exact typeof checks added and the switch from user-supplied IDs to server-resolved identifiers, making independent rediscovery realistic for any researcher examining the changeset. Organizations using Rocket.Chat for sensitive internal communications where thread confidentiality is a core assumption should treat this as higher priority than the raw CVSS implies.

Exploit ScenarioDerived

An attacker holding any valid Rocket.Chat account - such as a newly invited contractor or a user registered on an open-registration instance - opens a browser developer console during an active session and sends a raw DDP method call to getThreadsList substituting {"$gt": ""} for the expected rid string parameter. The server authorization check resolves this operator against a room the attacker already has access to, passing authorization, while the MongoDB query fans out across all rooms and returns thread listings from private channels and direct messages the attacker was never invited to. The attacker then iterates thread IDs and calls getThreadMessages with operator-injected tmid values to retrieve the full content of those private conversations. No public exploit code has been identified at time of analysis.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Aug 27, 2026

Private thread content disclosure in Rocket.Chat exposes all private thread parents and their full reply content to any low-privilege authenticated user on instances running versions prior to 8.8.0 across multiple maintained release branches. By substituting a MongoDB operator object (e.g., {"$gt": ""}) for the expected string room-id or thread message-id in the Meteor DDP methods getThreadsList and getThreadMessages, an attacker with any valid account can cause downstream MongoDB queries to fan out across all rooms while the authorization check resolves only to a room the attacker legitimately accesses. No public exploit has been identified at time of analysis, but the technique is straightforward for any developer familiar with DDP WebSocket debugging, and the fix pattern is visible in the public GitHub pull request.

RemediationAI

Upgrade to one of the patched releases: 8.8.0, 8.7.1, 8.6.2, 8.5.3, 8.4.6, 8.3.8, 8.2.8, 8.1.8, or 7.10.15 as appropriate for your installed release branch. The upstream fix is documented in GitHub pull request https://github.com/RocketChat/Rocket.Chat/pull/41814 and enforces typeof string checks on rid and tmid before any processing, then replaces user-supplied identifiers with server-resolved room._id and thread._id in all downstream queries, eliminating the operator injection path entirely. If immediate upgrade is not feasible, restricting access to the Rocket.Chat DDP WebSocket endpoint (typically port 3000, or proxied via HTTPS/WSS) to trusted internal network segments reduces exposure by requiring an attacker to also be network-adjacent, though it does not eliminate the vulnerability for insider-threat scenarios. There is no server-side configuration option to selectively disable getThreadsList or getThreadMessages without source modification. Note that the REST API route chat.getThreadsList was patched in v5.0 and is not vulnerable to this specific injection; only the DDP method interface is affected.

Affected VersionsENISA

Rocket.Chat 0 <8.3.8
Rocket.Chat 0 <8.7.1
Rocket.Chat 0 <8.5.3
Rocket.Chat 0 <7.10.15
Rocket.Chat 0 <8.1.8
Rocket.Chat 0 <8.2.8
Rocket.Chat 0 <8.6.2
Rocket.Chat 0 <8.8.0
Rocket.Chat 0 <8.4.6

Affected Packages

euvd rocket_chat fix: 7.10.15, 8.1.8, 8.2.8, 8.3.8, 8.4.6, 8.5.3, 8.6.2, 8.7.1, 8.8.0

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

Rocket.Chat's real-time features are built on Meteor's DDP (Distributed Data Protocol) over WebSocket. The affected server methods getThreadsList and getThreadMessages accept rid (room ID) and tmid (thread message ID) directly from the client without type coercion or schema validation. Because MongoDB's query interface accepts operator objects (BSON documents with keys like $gt, $ne, $regex) wherever a scalar is expected, passing a MongoDB operator causes the authorization check - which resolves the user-supplied rid against a room the attacker legitimately has access to - to pass, while the subsequent findVisibleThreadByThreadId and findThreadsByRoomId queries fan out across the entire message collection. CWE-20 (Improper Input Validation) captures the root cause: the server trusts client-supplied data types without enforcing that rid and tmid are primitive strings. The companion REST route chat.getThreadsList was remediated in v5.0 (HackerOne report #1446767) with AJV schema enforcement of rid: {type:'string'}, but the DDP method equivalents received no equivalent fix at that time, leaving the partial patch gap open across all subsequent versions until this hotfix.

Know when Rocket Chat 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 (hackerone) PRIMARY 4.3 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
vuln.today AI 6.5 MEDIUM

Fan-out MongoDB query discloses all private thread content system-wide justifying C:H over vendor C:L; AV:N and PR:L match the DDP WebSocket interface requiring only a valid account.

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

Primary rating from Vendor (hackerone).

CVSS VectorVendor: hackerone

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
None

Lifecycle Timeline

3
CVSS changed
Aug 27, 2026 - 20:37 NVD
4.3 (MEDIUM)
Patch available
Aug 21, 2026 - 04:16 EUVD
CVE Published
Aug 21, 2026 - 02:53 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

Rocket.Chat in versions before 8.8.0, 8.7.1, 8.6.2, 8.5.3, 8.4.6. 8.3.8, 8.2.8, 8.1.8, and 7.10.15, the Meteor DDP methods getThreadsList and getThreadMessages accept rid / tmid as raw, untyped parameters with no schema validation. A MongoDB operator object (e.g. {"$gt": "4"}) can be substituted for a string room-id or message-id. The authorization check resolves to a room the attacker already has access to, while the downstream data query fans out across all rooms - disclosing private thread parents and their full reply content to any low-privilege authenticated user. The REST route chat.getThreadsList was patched in v5.0 (HackerOne report #1446767) by adding rid: {type:'string'} AJV validation. The equivalent DDP method was never given the same fix and remains exploitable

Threat Intelligence Overview

EPSS Score
0.1%
Top 96% exploitable
Prevalence
Medium
popular self-hosted team messaging platform, broad enterprise and community adoption
Data Quality
6 sources
Confidence: High

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

22
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +22
PoC: 0
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.

Related Vulnerabilities in Rocket.Chat Input Handling and XSS Vulnerabilities

View all 2
CVE-2021-22910 CRITICAL POC
9.8 Aug 09

A sanitization vulnerability exists in Rocket.Chat server versions <3.13.2, <3.12.4, <3.11.4 that allowed queries to an

CVE-2021-22911 CRITICAL POC
9.8 May 27

A improper input sanitization vulnerability exists in Rocket.Chat server 3.11, 3.12 & 3.13 that could lead to unauthenti

CVE-2022-35248 HIGH POC
8.8 Sep 23

A improper authentication vulnerability exists in Rocket.Chat <v5, <v4.8.2 and <v4.7.5 that allowed two factor authentic

CVE-2022-32211 HIGH POC
8.8 Sep 23

A SQL injection vulnerability exists in Rocket.Chat <v3.18.6, <v4.4.4 and <v4.7.3 which can allow an attacker to retriev

CVE-2024-39713 HIGH POC
8.6 Aug 05

A Server-Side Request Forgery (SSRF) affects Rocket.Chat's Twilio webhook endpoint before version 6.10.1. Rated high sev

CVE-2026-23477 HIGH POC
7.7 Jan 14

Rocket.Chat versions prior to 6.12.0 expose the OAuth applications API endpoint to any authenticated user, allowing disc

CVE-2021-22892 HIGH POC
7.5 May 27

An information disclosure vulnerability exists in the Rocket.Chat server fixed v3.13, v3.12.2 & v3.11.3 that allowed ema

CVE-2022-30124 MEDIUM POC
6.8 Sep 23

An improper authentication vulnerability exists in Rocket.Chat Mobile App <4.14.1.22788 that allowed an attacker with ph

CVE-2022-32227 MEDIUM POC
6.5 Sep 23

A cleartext transmission of sensitive information exists in Rocket.Chat <v5, <v4.8.2 and <v4.7.5 relating to Oauth token

CVE-2022-32220 MEDIUM POC
6.5 Sep 23

An information disclosure vulnerability exists in Rocket.Chat <v5 due to the getUserMentionsByChannel meteor server meth

CVE-2021-32832 MEDIUM POC
6.5 Aug 30

Rocket.Chat is an open-source fully customizable communications platform developed in JavaScript. Rated medium severity

CVE-2022-21830 MEDIUM POC
6.1 Apr 01

A blind self XSS vulnerability exists in RocketChat LiveChat <v1.9 that could allow an attacker to trick a victim pastin

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