Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain authenticated Discourse session
-
DeliveryRequest group post listing endpoint
-
ExploitReceive GroupPostSerializer response
-
ExecutionExtract user real names from JSON payload
-
ImpactMap usernames to real identities
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK
2 techniques across 2 tactics: Collection, Discovery The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The vulnerability requires two conditions to be exploitable in a meaningful way: (1) a valid authenticated session on the Discourse instance - unauthenticated access is not sufficient per the CVSS PR:L metric; and (2) the site administrator must have set SiteSetting.enable_names to false, which is a non-default configuration used by communities that wish to suppress display of user real names. On instances where enable_names remains at its default true value, user names are already publicly visible and no information is improperly disclosed. Exploitation is limited to read-only name enumeration via group post endpoints; it does not enable account takeover, code execution, or data modification. |
| Impact | The NVD-assigned CVSS 3.1 score of 4.3 (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N) is consistent with the nature of the flaw: network-reachable, low complexity, requires a valid session, and produces only a limited confidentiality impact. The EPSS score of 0.03% at the 9th percentile corroborates low real-world exploitation interest, and the vulnerability is neither listed in CISA KEV nor accompanied by any public proof-of-concept code. The practical risk is bounded by two factors: exploitation requires an authenticated session (PR:L), and the information disclosure is only consequential when an administrator has intentionally set enable_names to false - a non-default privacy configuration. Instances running with the default enable_names=true are not impacted because names are already publicly visible. The combination of low EPSS, no KEV listing, no POC, authentication requirement, and non-default configuration dependency places this firmly in the lower tier of prioritization for most operators, though it is a meaningful trust violation for communities that rely on name suppression for user safety. |
| Exploit ScenarioDerived | An authenticated Discourse user - even one with minimal trust-level permissions - sends an API or browser request to a group post listing endpoint. The GroupPostSerializer serializes user.name unconditionally due to the misnamed predicate, and the response JSON includes the real names of post authors. On a community where the administrator has disabled names to protect pseudonymous members, the attacker harvests a mapping of usernames to real names across all returned posts. No public exploit code exists for this specific issue. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 12, 2026
Discourse's GroupPostSerializer leaks user real names to authenticated users even when site administrators have explicitly disabled name display via the enable_names site setting. Affected versions span the 2026.1.x, 2026.3.x, and 2026.4.x release lines. An authenticated user querying group post endpoints receives real name data that the platform operator intended to suppress, undermining privacy configurations on Discourse instances that host pseudonymous or anonymous communities. No public exploit code exists and no active exploitation has been identified; the EPSS score of 0.03% (9th percentile) reflects low exploitation probability.
RemediationAI
Vendor-released patches are available; operators should upgrade to Discourse 2026.1.4, 2026.3.1, 2026.4.1, or 2026.5.0-latest.1 depending on their tracked release branch. The fix corrects the AMS predicate method name from include_user_long_name? to include_name?, restoring proper enforcement of the enable_names site setting. Full advisory details are at https://github.com/discourse/discourse/security/advisories/GHSA-h3mq-9r6w-h33j. As a temporary workaround prior to patching, operators who rely on enable_names=false for user privacy could restrict API access to group post endpoints for untrusted authenticated users via Discourse's trust-level or group permission system, though this may degrade expected platform functionality and is not a substitute for patching.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 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 discussion platform that uses the ActiveModelSerializers (AMS) library for JSON serialization. In AMS, conditional attribute inclusion is governed by a predicate method named include_<attribute>?. The GroupPostSerializer incorrectly declared the predicate as include_user_long_name? for its :name attribute, but AMS resolves predicates by the attribute name, so it looks for include_name?. Because the correctly-named predicate was never defined, AMS defaulted to always serializing the attribute, causing object.user.name to be included in every group post response irrespective of the SiteSetting.enable_names flag. This is a CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor) rooted in an API contract misunderstanding - a silent logic error rather than a memory safety or injection flaw. The affected CPE is cpe:2.3:a:discourse:discourse:*:*:*:*:*:*:*:*.
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 API endpoint requires only a valid login (PR:L); confidentiality impact is limited to user real names only, with no integrity or availability consequence.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Discourse is an open-source discussion platform. From versions 2026.1.0-latest to before 2026.1.4, 2026.3.0-latest to before 2026.3.1, and 2026.4.0-latest to before 2026.4.1, GroupPostSerializer declared include_user_long_name? as the predicate for its :name attribute, but AMS looks for include_name?. The misnamed predicate was never called, so object.user.name was always serialized regardless of SiteSetting.enable_names. This issue has been patched in versions 2026.1.4, 2026.3.1, 2026.4.1, and 2026.5.0-latest.1.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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-36585
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB