{"id":"CVE-2026-45689","title":"Rocket.Chat is an open-source, secure, fully customizable communications platform","summary":"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…","severity":"critical","cvss":9.1,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","cwe":["CWE-943"],"vendor":"RocketChat","product":"Rocket.Chat","affected":["Rocket.Chat >= 8.5.0-rc.0, < 8.5.0","Rocket.Chat >= 8.4.0-rc.0, < 8.4.1","Rocket.Chat >= 8.3.0-rc.0, < 8.3.3","Rocket.Chat >= 8.2.0-rc.0, < 8.2.3","Rocket.Chat >= 8.1.0-rc.0, < 8.1.4","Rocket.Chat >= 8.0.0-rc.0, < 8.0.5","Rocket.Chat >= 7.11.0-rc.0, < 7.13.7","Rocket.Chat < 7.10.11"],"published":"2026-06-24","updated":"2026-11-03","sourceUpdated":"2026-11-03T23:17:44.823","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-45689","references":[{"url":"https://github.com/RocketChat/Rocket.Chat/security/advisories/GHSA-8p25-fm45-pjrw","label":"security-advisories@github.com"}],"tags":["nvd","cve.org","exploit-available"],"exploitAvailable":true,"ssvc":{"exploitation":"poc","automatable":"no","technicalImpact":"total","timestamp":"2026-06-26T03:55:35.841877Z"},"epss":0.00526,"epssPercentile":0.44691,"ingestedAt":"2026-11-05T06:38:03.619Z","slug":"CVE-2026-45689","body":"## Overview\n\nRocket.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.\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"abyssal","depthScore":62,"depthScoreParts":{"impact":50.1,"likelihood":0.1,"exploitation":12,"ransomware":0},"changes":[]}