Skip to main content

Discourse CVE-2026-84302

| EUVDEUVD-2026-86297 MEDIUM
Missing Authorization (CWE-862)
2026-09-24 GitHub_M
4.2
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as moderator
  2. Delivery
    Open moderation review queue
  3. Exploit
    View AI reviewable tied to unauthorized private message
  4. Execution
    Read confidential PM content
  5. Impact
    Optionally 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

discourse 2026.1.0-latest, < 2026.1.6
discourse < 2026.7.0
discourse 2026.6.0-latest, < 2026.6.1
discourse 2026.5.0-latest, < 2026.5.2

Affected Packages

euvd discourse fix: 2026.7.0
euvd discourse_2026_1_0_latest fix: 2026.1.6
euvd discourse_2026_5_0_latest fix: 2026.5.2
euvd discourse_2026_6_0_latest fix: 2026.6.1

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

Vendor (GitHub_M) PRIMARY 4.2 MEDIUM
AV:N/AC:H/PR:H/UI:R/S:U/C:H/I:N/A:N
vuln.today AI 5.0 MEDIUM

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.

3.1 AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:L/A:N
4.0 AV:N/AC:H/AT:N/PR:H/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Privileges Required
High
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

1
Patch available
Sep 24, 2026 - 18:02 EUVD

DescriptionCVE.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

EPSS Score
0.2%
Top 87% exploitable
Prevalence
Medium
Discourse is widely deployed, but this bug requires the optional Discourse AI plugin
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

21
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +21
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0
CVE-2025-48954 HIGH POC
8.1 Jun 25

Discourse versions prior to 3.5.0.beta6 contain a reflected cross-site scripting (XSS) vulnerability in social login fun

CVE-2022-46162 CRITICAL POC
9.8 Nov 30

discourse-bbcode is the official BBCode plugin for Discourse. Rated critical severity (CVSS 9.8), this vulnerability is

CVE-2026-27934 HIGH POC
8.7 Mar 19

Unauthorized information disclosure in Discourse discussion platform versions prior to 2026.3.0-latest.1, 2026.2.1, and

CVE-2024-47773 HIGH POC
8.2 Oct 08

Discourse is an open source platform for community discussion. Rated high severity (CVSS 8.2), this vulnerability is rem

CVE-2026-26265 HIGH POC
7.5 Feb 26

Discourse versions prior to 2025.12.2, 2026.1.1, and 2026.2.0 contain an insecure direct object reference (IDOR) in the

CVE-2021-3138 HIGH POC
7.5 Jan 14

In Discourse 2.7.0 through beta1, a rate-limit bypass leads to a bypass of the 2FA requirement for certain forms. Rated

CVE-2026-26077 MEDIUM POC
6.5 Feb 26

Unauthenticated attackers can submit forged webhook payloads to multiple email provider integrations in Discourse versio

CVE-2023-38706 MEDIUM POC
6.5 Sep 15

Discourse is an open-source discussion platform. Rated medium severity (CVSS 6.5), this vulnerability is remotely exploi

CVE-2024-53991 MEDIUM POC
5.9 Dec 19

Discourse is an open source platform for community discussion. Rated medium severity (CVSS 5.9), this vulnerability is r

CVE-2025-48877 CRITICAL
9.8 Jun 09

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

CVE-2023-47121 CRITICAL
9.8 Nov 10

Discourse is an open source platform for community discussion. Rated critical severity (CVSS 9.8), this vulnerability is

CVE-2022-39355 CRITICAL
9.8 Oct 26

Discourse Patreon enables syncronization between Discourse Groups and Patreon rewards. Rated critical severity (CVSS 9.8

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy