CVE-2026-65645: Rocket.Chat Rocket.Chat vulnerability

Published Aug 21, 2026
·
Updated

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

Affected Software

2 affected components
Rocket.Chat Rocket.Chat<8.8.0, =8.7.1, =8.6.2, =8.5.3, =8.4.6, =8.3.8, =8.2.8, =8.1.8, =7.10.15
Rocket.Chat<5.0.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade Meteor DDP methods getThreadsList and getThreadMessages to a version that resolves this vulnerability.

    Fixed in 8.3.8
  2. Upgrade

    Upgrade Meteor DDP methods getThreadsList and getThreadMessages to a version that resolves this vulnerability.

    Fixed in 8.2.8
  3. Upgrade

    Upgrade Meteor DDP methods getThreadsList and getThreadMessages to a version that resolves this vulnerability.

    Fixed in 8.1.8
  4. Upgrade

    Upgrade Meteor DDP methods getThreadsList and getThreadMessages to a version that resolves this vulnerability.

    Fixed in 7.10.15
  5. Upgrade

    Upgrade Rocket.Chat to a version that resolves this vulnerability.

    Fixed in 8.8.0
  6. Upgrade

    Upgrade Rocket.Chat to a version that resolves this vulnerability.

    Fixed in 8.7.1
  7. Upgrade

    Upgrade Rocket.Chat to a version that resolves this vulnerability.

    Fixed in 8.6.2
  8. Upgrade

    Upgrade Rocket.Chat to a version that resolves this vulnerability.

    Fixed in 8.5.3
  9. Upgrade

    Upgrade Rocket.Chat to a version that resolves this vulnerability.

    Fixed in 8.4.6
  10. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Patch HackerOne report #1446767
  11. Configuration

    Ensure chat.getThreadsList validates rid as a string using AJV schema validation (as patched in v5.0 referenced by HackerOne report #1446767).

    REST route chat.getThreadsList AJV schema validation for rid = rid: {type:'string'}
  12. Configuration

    Add schema validation (e.g., rid and tmid typed as strings) to the DDP methods getThreadsList and getThreadMessages to match the REST route fix; currently they accept rid / tmid as raw, untyped parameters with no schema validation and remain exploitable.

    Meteor DDP methods getThreadsList and getThreadMessages Input schema validation for rid and tmid = rid and tmid should be typed/validated (not raw, untyped)

Event History

Aug 21, 2026
CVE Published
via MITRE·02:53 AM
Data Sourced
via MITRE·02:53 AM
Description

Frequently Asked Questions

1

Who can exploit this issue?

Any low-privilege authenticated user who has access to at least one room can exploit it. The issue can disclose private thread parent messages and complete thread replies from other rooms.

2

What does an attacker need to send?

The attacker must invoke the Meteor DDP getThreadsList or getThreadMessages method and supply a MongoDB operator object, such as {"$gt":"4"}, in place of the expected string room ID or thread/message ID. The authorization check can then succeed against a room the attacker is allowed to access while the subsequent query returns data across rooms.

3

Are REST API users affected in the same way?

The described issue is in the DDP methods. The REST chat.getThreadsList route received string-type AJV validation in version 5.0, but the equivalent DDP method did not receive that fix.

4

Which versions need remediation?

Upgrade to a fixed release: 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, depending on the release branch in use. Versions before those releases are affected.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203