Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privilege user
-
DeliveryCraft internal link to restricted topic or private message
-
ExploitSubmit link via composer duplicate_lookup API
-
ExecutionReceive canonicalized slug or title in API response
-
ImpactEnumerate additional restricted resources by iterating topic IDs
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 | Exploitation requires an active authenticated session on the Discourse instance - unauthenticated exploitation is not possible given PR:L in the CVSS vector. The attacker must be able to reach the composer_messages duplicate_lookup endpoint, which is standard for any registered user. The information leak only materializes when the Discourse instance hosts content in restricted categories, private messages, or hidden posts that the authenticated user is not authorized to view; instances with no such restricted content expose no meaningful information. No special configuration, plugin, or non-default feature is required beyond the default Discourse installation. The limiting factors for exploitation are: (1) authentication is mandatory, (2) the attacker must know or be able to guess internal topic URLs or IDs to target, and (3) the leak is limited to slugs and titles, not post body content. |
| Impact | The CVSS 3.1 base score of 4.3 (Medium) is consistent with the actual impact: the vulnerability is network-reachable, low-complexity, requires authentication (PR:L), and yields only partial confidentiality impact - specifically topic titles and URL slugs, not full post bodies, private message content, or credentials. No EPSS score was provided in the available intelligence data, so exploitation probability cannot be quantified numerically. The CVE is absent from the CISA KEV catalog and no public proof-of-concept code has been identified, which together suggest this remains theoretical or opportunistic rather than actively targeted. The realistic risk is most acute on Discourse instances that host sensitive or confidential discussions in restricted categories or private messages - common in enterprise, legal, healthcare, or government deployments. The CVSS signals and description are internally consistent: AV:N and AC:L confirm easy network reachability, PR:L confirms authentication is required, and C:L reflects the narrow scope of the leak. No conflicting signals were detected between the CVSS vector and the description. Overall, this is a genuine medium-severity issue warranting prompt patching on sensitive deployments, though it does not represent an emergency for public-facing community forums with no confidential content. |
| Exploit ScenarioDerived | An authenticated Discourse user - such as a registered community member with no elevated privileges - pastes a link to a private message or restricted topic into the post composer. The composer's duplicate-detection feature fires a duplicate_lookup API request, and the server returns the title and canonical slug of the target resource in the response, even though that resource is not visible to the user. The attacker can enumerate restricted topic titles by systematically submitting candidate URLs. No public exploit code has been identified, but the attack requires only a standard authenticated browser session and knowledge of or ability to guess internal topic URLs. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 10, 2026
TopicLink authorization bypass in Discourse exposes restricted content metadata to authenticated users who lack permission to view those resources. All Discourse versions prior to 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0 are affected. An authenticated user can craft internal links to private messages, restricted topics, or hidden posts and recover their canonicalized slugs or titles via the composer_messages duplicate_lookup API endpoint, even though those resources are not visible to them. No public exploit code or active exploitation has been identified at time of analysis.
RemediationAI
Upgrade Discourse to one of the patched versions: 2026.1.6, 2026.5.2, 2026.6.1, or 2026.7.0, as documented in the GitHub Security Advisory at https://github.com/discourse/discourse/security/advisories/GHSA-4fx9-5m29-83p4. The fix was implemented across four pull requests (PRs #42091-#42094) and four corresponding commits, all enforcing consistent Guardian.can_see? checks within the TopicLink model. If an immediate upgrade is not possible, a compensating control is to restrict access to the composer_messages endpoint or disable the duplicate-link detection feature if the platform supports it; however, these workarounds may degrade user experience and their effectiveness is not confirmed by the vendor. Discourse instances with no restricted categories, private messages, or hidden posts face minimal practical risk from delaying the patch.
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
Discourse is a Ruby on Rails open-source discussion platform. The vulnerability resides in the TopicLink ActiveRecord model, specifically in three methods: extract_from, ensure_entry_for, and duplicate_lookup. These methods participate in Discourse's post-composing workflow, processing internal hyperlinks to detect duplicates and canonicalize URLs before a post is submitted. Discourse's authorization framework is built around the Guardian class, which exposes can_see? checks gating access to topics, private messages, and posts. The three affected methods bypass or inconsistently apply these checks when resolving internal links, meaning the duplicate_lookup response can leak topic titles and canonical slugs for resources the requesting user has no authorization to read. CWE-862 (Missing Authorization) precisely describes this root cause: a code path that retrieves sensitive data without first enforcing the authorization gate. The affected CPE is cpe:2.3:a:discourse:discourse:*:*:*:*:*:*:*:*, covering all versions prior to the patched 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
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
Network-reachable via standard API, low complexity, authentication required (PR:L), confidentiality-only impact limited to metadata leakage; no integrity or availability impact.
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, TopicLink.extract_from, TopicLink.ensure_entry_for, and TopicLink.duplicate_lookup do not consistently enforce Guardian.can_see? checks when processing internal links. An authenticated user can submit links to restricted topics, private messages, or hidden posts and receive canonicalized slugs or titles in the composer_messages duplicate_lookup response even though the targets are not visible to that user. 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
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-55659
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB