Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as member with category view rights
-
ExploitSubscribe to category chat MessageBus channel
-
ImpactReceive live and recent restricted chat messages
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitable only when ALL of the following hold: the Discourse site has Chat enabled; a chat channel is backed by a read-restricted (private) category; the site uses group-based Chat restrictions (e.g. chat_allowed_groups) so that a user can be allowed to view the category while NOT being eligible to use Chat; and the attacker holds an authenticated account that can view that category but is excluded from the Chat-allowed groups. The flaw stems from the MessageBus audience being bounded by category visibility alone (chat/app/services/chat/publisher.rb) without also enforcing Chat eligibility. Limiting factors that reduce realistic risk: an authenticated account with category-view access is required (not anonymous), the category must be read-restricted, and disclosure is bounded to live and recent MessageBus backlog messages - full channel history via the Chat API and any message creation or modification are NOT possible. |
| Impact | This is a genuine but moderate confidentiality-only information-disclosure flaw, not a critical priority. The upstream CVSS vector (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N, 7.5) is internally inconsistent with the description: it sets PR:N (unauthenticated) yet the description explicitly requires 'an authenticated user who could view the category' - so PR should realistically be PR:L, and the true score is lower than 7.5. CVSS also rates C:H, but the description bounds the impact (only live and recent MessageBus backlog content is exposed, not the channel's full history via the Chat API, and no message creation/modification is possible), which argues for a partial rather than total confidentiality loss. There is no EPSS score, no CISA KEV listing, and no public exploit code provided in the intelligence, so there is no public exploit identified at time of analysis. Exploitation also requires a specific non-default condition (read-restricted category chat channels combined with group-based Chat eligibility restrictions), further reducing real-world reach. Net: treat as a routine patch-soon issue for Discourse operators using restricted chat, not an emergency; the headline 7.5 overstates urgency given the authenticated prerequisite and bounded disclosure. |
| Exploit ScenarioDerived | A Discourse community restricts the Chat feature to certain groups while letting a broader set of authenticated members view a read-restricted category. A member who can see the category but is barred from Chat subscribes to the MessageBus channel and passively receives live and recent chat messages from that category's channel that they should not be able to read. No public exploit code is available, but the attack needs only normal authenticated access and low complexity (AC:L). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 14, 2026
Authenticated users on Discourse sites running the bundled Chat plugin can receive live and recent private-category channel messages they are not entitled to see, because the MessageBus publication audience for a read-restricted category channel is bounded by category visibility alone and never verifies Chat eligibility under the site's group restrictions (CWE-862 missing authorization). Only sites where chat is enabled, a chat channel is attached to a read-restricted category, and chat_allowed_groups are configured such that a user may view the category while being excluded from Chat are affected; exploitation requires a valid authenticated account with category-view access, which the assessed vector reflects (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N). Disclosure is confined to messages flowing through the MessageBus stream and its short backlog - the Chat API does not expose full channel history, and no message creation or modification is possible - making this a moderate confidentiality-only issue with no public exploit identified at time of analysis.
RemediationAI
Vendor-released patch: upgrade to Discourse 2026.9.0, 2026.8.1, 2026.7.3 or 2026.1.9, which introduce the Chat.message_bus_group_ids_for audience logic that requires both category visibility and Chat eligibility before a subscriber receives channel events; if a full upgrade cannot be scheduled immediately, cherry-pick the fixes from commits 046fb7bfd68a5b95e63dda88c3c73877c5cf9d5e, 87b31bf60a7827f075634254379a1dcbaba409cb, ba74bb404ab4439f5b1f0204e848d62099db8ae1 and cac1f26f275cec3dc1dd51dfdac2b3d1a4ec50f8, noting that the plugin.rb hook and the engine.rb helper must land together or the audience hardening is incomplete. As a compensating control unpatched sites can disable the Chat plugin (SiteSetting chat_enabled = false), which fully closes the channel but removes all chat functionality site-wide, or, less disruptively, align chat_allowed_groups with the membership of any read-restricted category used by a chat channel so that no principal can view the category while being excluded from Chat - this preserves chat availability but must be re-verified after every group or category permission change, since any later divergence between category visibility and chat eligibility reopens the leak. Administrators should also confirm that restricted categories are not granted to broad pseudo-groups such as trust_level_0, since those grants widen the MessageBus audience even after patching. Advisory and patch details are at https://github.com/discourse/discourse/security/advisories/GHSA-gh4f-qr62-vx8q.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Discourse is a Ruby on Rails discussion platform whose Chat plugin publishes new and updated chat messages over MessageBus, a Redis-backed publish/subscribe bus that routes events to subscribers by computed audience identifiers (user_ids and group_ids) rather than by application-layer authorization checks. In plugins/chat/app/services/chat/publisher.rb, the code built the audience for a category-backed channel from category visibility group IDs only; it never intersected those with Chat.allowed_group_ids / chat_allowed_groups, so any principal that could see the underlying read-restricted category received the channel's MessageBus stream even when Chat itself was denied to them. The root cause is CWE-862 (Missing Authorization) in the audience-computation path. The upstream fix introduces Chat.message_bus_group_ids_for and Chat.restricted_category_message_bus_audience_id, which derive synthetic audience identifiers of the form "chat-restricted-category-group-<group_id>" from the channel's allowed_group_ids for read-restricted category channels, and hooks MessageBus.group_ids_lookup (in plugins/chat/plugin.rb) so that subscribers only match when they actually hold both the category-visibility group and Chat eligibility. CPE cpe:2.3:a:discourse:discourse:*:*:*:*:*:*:*:* reflects that the issue affects the core product line rather than a separately distributed component; the flaw lies in MessageBus audience bounding rather than in any transport or cryptographic primitive.
Know when Discourse gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Requires an authenticated low-privilege account that can view the category (PR:L), network-reachable with low complexity; disclosure is bounded to recent backlog so C:L, with no integrity or availability impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Discourse is an open-source discussion platform. Prior to 2026.9.0, 2026.8.1, 2026.7.3, and 2026.1.9, MessageBus audience calculation could deliver messages from a read-restricted category chat channel to an authenticated user who could view the category but was not allowed to use Chat under the site's group restrictions. The publication path bounded events by category visibility without also enforcing Chat eligibility, exposing live and recent message content available in the MessageBus backlog. The issue does not permit retrieval of the channel's full history through the Chat API and does not permit message creation or modification. This issue is fixed in versions 2026.9.0, 2026.8.1, 2026.7.3, and 2026.1.9.
Technical POC Analysis
The flaw is a missing-authorization bug (CWE-862) in Discourse's bundled Chat plugin, specifically in the code that computes the MessageBus audience for chat channel events.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Discourse sites with the bundled Chat plugin enabled can expose private-category channel discussions to authenticated users who lack chat entitlement, creating confidentiality and compliance exposure for organizations that rely on restricted chat for sensitive collaboration. Leadership should care because affected sites require a specific but plausible configuration-chat enabled, a channel attached to a read-restricted category, and group settings that let a user view the category while excluding them from Chat-and while the exposure is limited to live and recent MessageBus messages rather than full history, it can still reveal private business discussions to insiders or unauthorized accounts. No public exploit identified at time of analysis, and no vendor-released patch identified at time of analysis.
No vendor-released patch identified at time of analysis; interim mitigations include disabling the Chat plugin or removing chat channels from read-restricted categories, aligning chat_allowed_groups with category-view permissions so no user can view a category while being excluded from Chat, restricting category visibility to only users in chat_allowed_groups, monitoring MessageBus logs for anomalous message delivery, and applying the vendor patch when released.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Discourse versions prior to 3.5.0.beta6 contain a reflected cross-site scripting (XSS) vulnerability in social login fun
discourse-bbcode is the official BBCode plugin for Discourse. Rated critical severity (CVSS 9.8), this vulnerability is
Unauthorized information disclosure in Discourse discussion platform versions prior to 2026.3.0-latest.1, 2026.2.1, and
Discourse is an open source platform for community discussion. Rated high severity (CVSS 8.2), this vulnerability is rem
Discourse versions prior to 2025.12.2, 2026.1.1, and 2026.2.0 contain an insecure direct object reference (IDOR) in the
In Discourse 2.7.0 through beta1, a rate-limit bypass leads to a bypass of the 2FA requirement for certain forms. Rated
Unauthenticated attackers can submit forged webhook payloads to multiple email provider integrations in Discourse versio
Discourse is an open-source discussion platform. Rated medium severity (CVSS 6.5), this vulnerability is remotely exploi
Discourse is an open source platform for community discussion. Rated medium severity (CVSS 5.9), this vulnerability is r
Discourse versions prior to 3.4.4 (stable), 3.5.0.beta5 (beta), and 3.5.0.beta6-dev (tests-passed) contain a critical vu
Discourse is an open source platform for community discussion. Rated critical severity (CVSS 9.8), this vulnerability is
Discourse Patreon enables syncronization between Discourse Groups and Patreon rewards. Rated critical severity (CVSS 9.8
EUVD-2026-101300
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB