{"id":"CVE-2026-65645","state":"PUBLISHED","title":"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","description":"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.\nThe 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","publishedAt":"2026-08-21T02:53:43.305Z","updatedAt":"2026-08-27T17:46:35.706Z","severity":{"score":4.3,"label":"Medium","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N","source":"CISA-ADP"},"assigner":"hackerone","products":["Rocket.Chat Rocket.Chat"],"affected":[{"vendor":"Rocket.Chat","product":"Rocket.Chat","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"8.8.0","versionType":"semver"},{"version":"0","status":"affected","lessThan":"8.7.1","versionType":"semver"},{"version":"0","status":"affected","lessThan":"8.6.2","versionType":"semver"},{"version":"0","status":"affected","lessThan":"8.5.3","versionType":"semver"},{"version":"0","status":"affected","lessThan":"8.4.6","versionType":"semver"},{"version":"0","status":"affected","lessThan":"8.3.8","versionType":"semver"},{"version":"0","status":"affected","lessThan":"8.2.8","versionType":"semver"},{"version":"0","status":"affected","lessThan":"8.1.8","versionType":"semver"},{"version":"0","status":"affected","lessThan":"7.10.15","versionType":"semver"}]}],"references":["https://hackerone.com/reports/3852135","https://github.com/RocketChat/Rocket.Chat/pull/41814"],"weaknesses":["CWE-20"],"ingestedAt":"2026-10-29T20:12:41.951Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/65xxx/CVE-2026-65645.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-65645","state":"PUBLISHED","datePublished":"2026-08-21T02:53:43.305Z","dateUpdated":"2026-08-27T17:46:35.706Z","assignerShortName":"hackerone","assignerOrgId":"36234546-b8fa-4601-9d6f-f4e334aa8ea1","dateReserved":"2026-07-22T15:00:06.104Z"},"containers":{"cna":{"descriptions":[{"lang":"en","value":"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.\nThe 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":[{"vendor":"Rocket.Chat","product":"Rocket.Chat","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"8.8.0","versionType":"semver"},{"version":"0","status":"affected","lessThan":"8.7.1","versionType":"semver"},{"version":"0","status":"affected","lessThan":"8.6.2","versionType":"semver"},{"version":"0","status":"affected","lessThan":"8.5.3","versionType":"semver"},{"version":"0","status":"affected","lessThan":"8.4.6","versionType":"semver"},{"version":"0","status":"affected","lessThan":"8.3.8","versionType":"semver"},{"version":"0","status":"affected","lessThan":"8.2.8","versionType":"semver"},{"version":"0","status":"affected","lessThan":"8.1.8","versionType":"semver"},{"version":"0","status":"affected","lessThan":"7.10.15","versionType":"semver"}]}],"references":[{"url":"https://hackerone.com/reports/3852135"},{"url":"https://github.com/RocketChat/Rocket.Chat/pull/41814"}],"providerMetadata":{"shortName":"hackerone","orgId":"36234546-b8fa-4601-9d6f-f4e334aa8ea1","dateUpdated":"2026-08-21T02:53:43.305Z"},"credits":[{"lang":"en","value":"Aang (iamaangx028)","type":"finder"}]},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":4.3,"attackVector":"NETWORK","baseSeverity":"MEDIUM","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N","integrityImpact":"NONE","userInteraction":"NONE","attackComplexity":"LOW","availabilityImpact":"NONE","privilegesRequired":"LOW","confidentialityImpact":"LOW"}},{"other":{"type":"ssvc","content":{"timestamp":"2026-08-27T17:46:23.910812Z","id":"CVE-2026-65645","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-20","type":"CWE","lang":"en","description":"CWE-20 Improper Input Validation"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-08-27T17:46:35.706Z"}}]}}}