Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as moderator
-
DeliveryOpen moderation review queue
-
ExploitView AI reviewable tied to unauthorized private message
-
ExecutionRead confidential PM content
-
ImpactOptionally close topic or delete post
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 | Requires (1) an authenticated Discourse moderator account, (2) the Discourse AI plugin generating reviewables, and (3) a pre-existing AI reviewable associated with a private-message topic that the moderator is NOT a participant in. The flaw is that Reviewable.viewable_by did not restrict private-message reviewables to the audience allowed to access the underlying PM topic. Limiting factors: high privilege (moderator role), dependence on the optional Discourse AI feature, and the opportunistic requirement that such a reviewable already exists - the attacker cannot reliably force one to be created. Ability to modify (close topic / delete post) is further gated on which reviewable actions are available. |
| Impact | This is a low-to-moderate real-world risk despite the sensitive confidentiality impact. The vendor CVSS 3.1 base score of 4.2 (AV:N/AC:H/PR:H/UI:R/S:U/C:H/I:N/A:N) is dominated by strong limiting factors: exploitation requires an already-privileged authenticated moderator account (PR:H) AND a pre-existing Discourse AI reviewable that happens to be tied to a private-message topic (AC:H). This is an insider/abuse-of-trust authorization flaw (CWE-862 missing authorization), not a remotely-triggerable pre-auth bug. There is no CISA KEV listing, no EPSS score provided, and no public proof-of-concept identified - consistent with a low likelihood of opportunistic mass exploitation. One internal inconsistency worth noting: the official vector sets I:N, but the description explicitly states the moderator 'could also modify the private message by closing its topic or deleting a post,' which is an integrity/availability effect - so the I:N metric arguably understates impact when the reviewable exposes those actions. Overall this should be prioritized as a patch-during-normal-cycle privacy fix for operators running the Discourse AI plugin, not an emergency. |
| Exploit ScenarioDerived | A moderator on a Discourse instance running the Discourse AI plugin opens the standard moderation review queue and finds an AI-generated reviewable that references a private message they are not a participant in. Because reviewable visibility filtering fails to scope private-message reviewables to the PM's permitted audience, the moderator reads the confidential message content and, if the reviewable offers those actions, can close the PM topic or delete a post. No public exploit code has been identified; exploitation is manual abuse of an existing moderator account. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 24, 2026
Discourse's moderator review queue can expose the contents of private messages to moderators who are not participants in those conversations, because reviewables generated by the optional Discourse AI plugin were not filtered to the audience permitted to access the underlying private-message topic. Affected deployments are those running releases prior to 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0 with the Discourse AI feature producing reviewables; exploitation requires an authenticated moderator account, the AI plugin, and a pre-existing AI reviewable tied to a PM the moderator is not a participant in, so an attacker cannot reliably force the required state. Confidentiality impact is high (and a moderator may additionally close the PM topic or delete a post if the relevant reviewable actions are available), but real-world risk is low-to-moderate given the high privilege required, the dependence on optional functionality, and the opportunistic precondition; no public exploit identified at time of analysis.
RemediationAI
Apply the vendor fix by upgrading to the release matching your branch: 2026.1.6, 2026.5.2, 2026.6.1, or 2026.7.0 - vendor-released patch versions per the GHSA-3rx9-fqgh-wfpc advisory (https://github.com/discourse/discourse/security/advisories/GHSA-3rx9-fqgh-wfpc) and PR https://github.com/discourse/discourse/pull/42091; note the underlying code-level fixes are the commits 1566d04524c01472375944bbf7b198dd09a99427, 23488b72a200228e805c4e6d970fbad216d328c5, 38d10c0e5d1b76540d2860455e0290f8e975c9fd, and b323702d87cd82c327c116d9566477f3c4f9635f, which introduce the private-message exclusion in Reviewable.viewable_by. If an immediate upgrade is not possible, disable the Discourse AI plugin (or the AI reviewable/flagging capability that generates reviewables) on instances where private-message confidentiality is critical; the trade-off is loss of AI-assisted moderation triage, and disabling it is only forward-looking - it does not remove already-created reviewables, which should be cleared or resolved, and it will not protect queues that already contain AI reviewables referencing PM topics. As an additional compensating control, minimize the number of accounts holding the moderator role and audit moderator review-queue activity for PM-linked reviewables, accepting that this reduces operational flexibility and does not close the underlying authorization gap; because the modification path (closing a PM topic or deleting a post) is gated on which reviewable actions are exposed, revoking the corresponding reviewable action permissions where configurable also limits the integrity side of the issue while constraining legitimate moderation workflows.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 4 packages in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-862 (Missing Authorization) in Discourse's reviewable visibility layer. Reviewable.viewable_by is the model method responsible for scoping which reviewables a given user may see; it applied moderator-role checks (reviewables.reviewable_by_moderator with the user's moderator flag) and category-based checks against Guardian.new(user).allowed_category_ids, and joined category_moderation_groups to honor group-based moderation. It never consulted topic archetype or private-message participation, so a reviewable whose topic was an Archetype.private_message matched the generic moderator predicate and surfaced in the queue of a moderator who had no access to that PM topic. The upstream fix adds a private_class_method exclude_private_messages_hidden_from that builds a subquery from Guardian.new(user).private_message_topic_scope(Topic.unscoped).select(:id) and appends a NOT EXISTS clause excluding reviewables whose topic_id is a private-message topic outside that visible set. Related supporting changes in the same PR add Topic#notify_moderators?, a reviewable_score helper guarding moderator-flag notifications for PM meta topics, and tighten Group#filter_posts_for_guardian against SharedDraft visibility. The vulnerability is specific to reviewable records created by the Discourse AI plugin (AI-flagged content), which is what makes an otherwise normal moderation object reference a private-message topic. The CPE cpe:2.3:a:discourse:discourse:*:*:*:*:*:*:*:* confirms this is tracked as a core Discourse product issue rather than a separately versioned plugin.
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:H/PR:H/UI:R/S:U/C:H/I:N/A:N
Moderator role gives PR:H; dependence on a pre-existing PM-linked reviewable is AC:H; UI:N since the moderator is the attacker; C:H for PM disclosure and I:L for optional close/delete actions.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Discourse is an open-source discussion platform. Prior to 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0, Discourse AI reviewables associated with private messages could appear in the moderator review queue of a moderator who was not a participant in the message. Reviewable visibility filtering did not restrict private-message reviewables to the audience permitted to access the underlying private-message topic, allowing the moderator to read otherwise confidential content. Depending on the available reviewable action, the moderator could also modify the private message by closing its topic or deleting a post. Exploitation requires an authenticated moderator account and a pre-existing Discourse AI reviewable associated with a private message. This issue is fixed in versions 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0.
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
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-86297
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB