Skip to main content

Discourse CVE-2026-72724

| EUVDEUVD-2026-55663 MEDIUM
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-08-10 GitHub_M
4.3
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Authenticate to Discourse instance
  2. Delivery
    Identify public channel_id via normal access
  3. Exploit
    Enumerate private thread_ids via sequential integer iteration
  4. Execution
    Submit crafted /onebox.json with public channel_id and private thread_id
  5. Persist
    Authorization check passes on public channel, thread resolved independently
  6. Impact
    Private thread message content returned in response

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
Exploitation Conditions

The attacker must hold a valid authenticated Discourse account (PR:L per CVSS vector). The Discourse Chat plugin must be installed and active, and the thread feature must be in use. The attacker must know or be able to enumerate at least one valid private thread_id - because Discourse uses sequential integer IDs, this is feasible with iteration. Exploitation is limited to read-only disclosure of thread message content; no write access or account takeover is possible. The vulnerability does not affect Discourse instances where the Chat plugin is disabled or where no private threaded channels exist.

Impact

The CVSS 3.1 score of 4.3 (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N) accurately reflects the constrained impact: the vulnerability is network-accessible with low complexity but requires an authenticated account, limits impact to confidentiality only, and does not affect integrity or availability. No EPSS score is provided in the input data. The vulnerability is not listed in the CISA KEV catalog and no public proof-of-concept exploit has been identified, placing this in a genuine medium-low real-world priority category. The practical risk scales with how sensitive the private chat thread content is - a Discourse instance used for internal corporate communications or confidential community moderation discussions carries meaningfully higher organizational risk than a public hobbyist forum. No conflicting signals exist between the CVSS vector and the vulnerability description; both consistently indicate authenticated network access with limited information disclosure scope.

Exploit ScenarioDerived

An authenticated Discourse user navigates to a public chat channel to obtain its channel_id, then enumerates or guesses thread_id values from private channels (thread IDs are sequential integers and thus predictable). The attacker submits GET /onebox.json requests pairing the public channel_id with private thread_id values; the server resolves the private thread independently, bypasses the channel access check, and returns private thread message content in the onebox preview response. No public exploit code has been identified at time of analysis.

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

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

Alert me

AnalysisAIv1 – Aug 10, 2026

Discourse's Chat plugin exposes private thread message content to authenticated users who lack access to the private channel. The onebox handler in plugins/chat/lib/chat/onebox_handler.rb resolves Chat::Thread using the route's thread_id before verifying whether the requesting user can access the associated channel_id, allowing a mismatched public-channel/private-thread pair to be submitted via /onebox.json. This is confirmed fixed in versions 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0; no public exploit or CISA KEV listing has been identified at time of analysis.

RemediationAI

Upgrade Discourse to version 2026.1.6, 2026.5.2, 2026.6.1, or 2026.7.0 depending on the branch in use; these are the vendor-confirmed fix releases per the GitHub Security Advisory GHSA-8g98-fvfc-9w48. The upstream fixes are delivered via pull requests #42091, #42092, #42093, and #42094 (https://github.com/discourse/discourse/pull/42091 through /42094). If an immediate upgrade is not feasible, a viable compensating control is to disable the Discourse Chat plugin entirely, which removes the /onebox.json thread-preview attack surface; this trade-off is loss of all chat functionality. There is no known configuration-level workaround that preserves chat while blocking the specific vulnerable code path.

Affected VersionsENISA

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

Affected Packages

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

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

Discourse is a Ruby on Rails-based open-source forum platform. The affected component is the Chat plugin's onebox handler (plugins/chat/lib/chat/onebox_handler.rb), which previews linked content including chat threads via the /onebox.json endpoint. The root cause is CWE-639 (Authorization Bypass Through User-Controlled Key): the handler performs a database lookup for Chat::Thread using the attacker-supplied thread_id route parameter independently of the channel_id parameter, and only subsequently checks whether the user can preview the channel identified by channel_id. Because thread resolution and channel authorization are decoupled, an attacker can supply a valid public channel_id (which passes the permission check) alongside an unrelated private thread_id, causing the server to return content from the private thread. The affected CPE is cpe:2.3:a:discourse:discourse:*:*:*:*:*:*:*:* covering all versions prior to the fix releases.

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.3 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
vuln.today AI 4.3 MEDIUM

Requires authenticated account (PR:L), network-accessible endpoint with no complexity (AV:N/AC:L), read-only thread content disclosure only (C:L/I:N/A:N), scope unchanged.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

1
Patch available
Aug 10, 2026 - 17:03 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, 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.

Threat Intelligence Overview

EPSS Score
0.3%
Top 75% exploitable
Prevalence
Medium
popular open-source forum platform, broad community and enterprise deployment
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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.3%
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

22
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +22
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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