Description
Discourse is an open-source discussion platform. Prior to 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0, plugins/chat/lib/chat/onebox_handler.rb resolves Chat::Thread by route thread_id independently of the route channel_id before checking whether the user can preview the selected chat channel. An authenticated user can pair a public channel ID with a private thread ID in a /onebox.json request and obtain private thread message content. This issue is fixed in versions 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0.
References9
- github.com/discourse/discourse/commit/1276d7032af8803956c74ae87…
- github.com/discourse/discourse/commit/45ab6d54076de9ca496588897…
- github.com/discourse/discourse/commit/49efe1d7f098f2ce730190881…
- github.com/discourse/discourse/commit/dc54846f0754799591717b601…
- github.com/discourse/discourse/pull/42091
- github.com/discourse/discourse/pull/42092
- github.com/discourse/discourse/pull/42093
- github.com/discourse/discourse/pull/42094
- github.com/discourse/discourse/security/advisories/GHSA-8g98-fv…
Metrics
- CVSS 3.1
-
4.3
MEDIUM
Score source: CNA
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N - EPSS — exploit probability
- 1% percentile: 51 · as of 12 November 2026
- CWE
- CWE-639
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.