Skip to main content

Discourse CVE-2026-44782

| EUVDEUVD-2026-36585 MEDIUM
Information Exposure (CWE-200)
2026-06-12 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
    Obtain authenticated Discourse session
  2. Delivery
    Request group post listing endpoint
  3. Exploit
    Receive GroupPostSerializer response
  4. Execution
    Extract user real names from JSON payload
  5. Impact
    Map 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.

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

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

Alert me

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

discourse 2026.1.0-latest, < 2026.1.4
discourse 2026.3.0-latest, < 2026.3.1
discourse 2026.4.0-latest, < 2026.4.1

Affected Packages

euvd discourse_2026_1_0_latest fix: 2026.1.4
euvd discourse_2026_3_0_latest fix: 2026.3.1
euvd discourse_2026_4_0_latest fix: 2026.4.1

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

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

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.

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:P/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
Jun 12, 2026 - 22:01 EUVD

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

EPSS Score
0.0%
Top 91% exploitable
Data Quality
6 sources
Confidence: High

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

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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