{"document":{"category":"csaf_vex","csaf_version":"2.0","title":"CVE-2026-45688: Rocket.Chat: Pre-Auth NoSQL Injection in CAS Login Handler leading to Arbitrary CAS/SAML User Session Hijack","publisher":{"category":"vendor","name":"HarborGuard Database","namespace":"https://database.harborguard.co"},"tracking":{"id":"CVE-2026-45688","status":"final","version":"1","initial_release_date":"2026-06-24T20:56:44.843Z","current_release_date":"2026-06-24T20:56:44.843Z","revision_history":[{"date":"2026-06-24T20:56:44.843Z","number":"1","summary":"Initial machine-readable export from HarborGuard."}]},"distribution":{"tlp":{"label":"WHITE"},"text":"Public CVE data; freely redistributable."},"notes":[{"category":"description","text":"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, Rocket.Chat's CAS login handler forwards the client-supplied options.cas.credentialToken value straight into a MongoDB findOne({_id: ...}) query without any runtime type check. TypeScript's string parameter annotation is erased at runtime, so an unauthenticated attacker can substitute a MongoDB query operator ({\"$gt\": \"\"}, {\"$ne\": null}, etc.) for what the server expects to be an opaque ticket string. The injected operator matches the first unexpired document in the credential_tokens collection, bypassing the CAS ticket check entirely. When any legitimate CAS or SAML SSO login is in flight, the attacker's next DDP login call matches the same credential-token row via the NoSQL operator and is issued a full Meteor auth token (userId + token) bound to the victim. The token is immediately usable against the complete REST and DDP surface as that user. If the victim is an administrator, this escalates to full instance compromise via Apps-Engine app install. 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.","title":"CVE description"}],"references":[{"category":"self","summary":"CVE-2026-45688 on HarborGuard Database","url":"https://database.harborguard.co/cve/CVE-2026-45688"},{"category":"external","summary":"CVE Record","url":"https://www.cve.org/CVERecord?id=CVE-2026-45688"},{"category":"external","summary":"https://github.com/RocketChat/Rocket.Chat/security/advisories/GHSA-rr54-jf4h-6cj9","url":"https://github.com/RocketChat/Rocket.Chat/security/advisories/GHSA-rr54-jf4h-6cj9"}]},"product_tree":{"branches":[{"category":"vendor","name":"RocketChat","branches":[{"category":"product_name","name":"Rocket.Chat","branches":[{"category":"product_version","name":">= 8.5.0-rc.0, < 8.5.0","product":{"name":"RocketChat Rocket.Chat >= 8.5.0-rc.0, < 8.5.0","product_id":"CSAFPID-1","product_identification_helper":{"cpe":"cpe:2.3:a:rocketchat:rocket.chat:*:*:*:*:*:*:*:*"}}},{"category":"product_version","name":">= 8.4.0-rc.0, < 8.4.1","product":{"name":"RocketChat Rocket.Chat >= 8.4.0-rc.0, < 8.4.1","product_id":"CSAFPID-2","product_identification_helper":{"cpe":"cpe:2.3:a:rocketchat:rocket.chat:*:*:*:*:*:*:*:*"}}},{"category":"product_version","name":">= 8.3.0-rc.0, < 8.3.3","product":{"name":"RocketChat Rocket.Chat >= 8.3.0-rc.0, < 8.3.3","product_id":"CSAFPID-3","product_identification_helper":{"cpe":"cpe:2.3:a:rocketchat:rocket.chat:*:*:*:*:*:*:*:*"}}},{"category":"product_version","name":">= 8.2.0-rc.0, < 8.2.3","product":{"name":"RocketChat Rocket.Chat >= 8.2.0-rc.0, < 8.2.3","product_id":"CSAFPID-4","product_identification_helper":{"cpe":"cpe:2.3:a:rocketchat:rocket.chat:*:*:*:*:*:*:*:*"}}},{"category":"product_version","name":">= 8.1.0-rc.0, < 8.1.4","product":{"name":"RocketChat Rocket.Chat >= 8.1.0-rc.0, < 8.1.4","product_id":"CSAFPID-5","product_identification_helper":{"cpe":"cpe:2.3:a:rocketchat:rocket.chat:*:*:*:*:*:*:*:*"}}},{"category":"product_version","name":">= 8.0.0-rc.0, < 8.0.5","product":{"name":"RocketChat Rocket.Chat >= 8.0.0-rc.0, < 8.0.5","product_id":"CSAFPID-6","product_identification_helper":{"cpe":"cpe:2.3:a:rocketchat:rocket.chat:*:*:*:*:*:*:*:*"}}},{"category":"product_version","name":">= 7.11.0-rc.0, < 7.13.7","product":{"name":"RocketChat Rocket.Chat >= 7.11.0-rc.0, < 7.13.7","product_id":"CSAFPID-7","product_identification_helper":{"cpe":"cpe:2.3:a:rocketchat:rocket.chat:*:*:*:*:*:*:*:*"}}},{"category":"product_version","name":"< 7.10.11","product":{"name":"RocketChat Rocket.Chat < 7.10.11","product_id":"CSAFPID-8","product_identification_helper":{"cpe":"cpe:2.3:a:rocketchat:rocket.chat:*:*:*:*:*:*:*:*"}}}]}]}]},"vulnerabilities":[{"cve":"CVE-2026-45688","title":"Rocket.Chat: Pre-Auth NoSQL Injection in CAS Login Handler leading to Arbitrary CAS/SAML User Session Hijack","notes":[{"category":"description","text":"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, Rocket.Chat's CAS login handler forwards the client-supplied options.cas.credentialToken value straight into a MongoDB findOne({_id: ...}) query without any runtime type check. TypeScript's string parameter annotation is erased at runtime, so an unauthenticated attacker can substitute a MongoDB query operator ({\"$gt\": \"\"}, {\"$ne\": null}, etc.) for what the server expects to be an opaque ticket string. The injected operator matches the first unexpired document in the credential_tokens collection, bypassing the CAS ticket check entirely. When any legitimate CAS or SAML SSO login is in flight, the attacker's next DDP login call matches the same credential-token row via the NoSQL operator and is issued a full Meteor auth token (userId + token) bound to the victim. The token is immediately usable against the complete REST and DDP surface as that user. If the victim is an administrator, this escalates to full instance compromise via Apps-Engine app install. 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.","title":"CVE description"}],"product_status":{"known_affected":["CSAFPID-1","CSAFPID-2","CSAFPID-3","CSAFPID-4","CSAFPID-5","CSAFPID-6","CSAFPID-7","CSAFPID-8"]},"scores":[{"cvss_v3":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","baseScore":9.1,"baseSeverity":"CRITICAL"},"products":["CSAFPID-1","CSAFPID-2","CSAFPID-3","CSAFPID-4","CSAFPID-5","CSAFPID-6","CSAFPID-7","CSAFPID-8"]}],"remediations":[{"category":"none_available","details":"No fixed version is published yet. Monitor the upstream advisory.","product_ids":["CSAFPID-1","CSAFPID-2","CSAFPID-3","CSAFPID-4","CSAFPID-5","CSAFPID-6","CSAFPID-7","CSAFPID-8"]}]}]}