Skip to main content

Discourse EUVDEUVD-2026-13496

| CVE-2026-31869 MEDIUM
Information Exposure (CWE-200)
2026-03-20 security-advisories@github.com
4.3
CVSS 3.1 · GitHub Advisory
View

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.

Impact

The CVSS 4.0 score of 5.3 reflects a low-impact information disclosure (Confidentiality: Low) with network accessibility and low attack complexity, but critically requires prior authentication (PR:L). The attack vector is Network and the scope is unchanged. However, real-world risk must be contextualized: the vulnerability requires an attacker to already have authenticated access and messaging permissions with the target group, significantly narrowing the threat actor pool. The exploit is automatable and does not require user interaction, which increases practical risk. EPSS data is unavailable from the provided intelligence, limiting probabilistic exploitation assessment. KEV (Known Exploited Vulnerabilities) status is unknown, suggesting no active exploitation has been reported in coordinated attack campaigns at time of publication. The technical impact is information disclosure only—no code execution, privilege escalation, or integrity impact. For organizations running hidden-membership groups containing sensitive member lists (e.g., security teams, HR groups), this poses elevated risk despite moderate CVSS. For general-purpose forums with public group membership, impact is negligible. The vulnerability is patched in three concurrent versions, indicating vendor responsiveness.

Exploit ScenarioDerived

An authenticated user on a Discourse instance with basic messaging permissions targets a hidden-membership security team group. The attacker uses the ComposerController#mentions endpoint with the group name and iteratively probes a list of employee usernames, observing that certain usernames return 'private' in the user_reasons field while others do not. Over multiple queries, the attacker constructs a complete roster of the security team's membership despite the group's hidden-visibility settings, potentially identifying employees working on sensitive initiatives or investigations. The attack requires no user interaction, can be fully automated via HTTP requests, and leaves minimal forensic traces if logging is not enabled at verbose levels.

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 – Mar 20, 2026

Discourse prior to versions 2026.3.0-latest.1, 2026.2.1, and 2026.1.2 contains an information disclosure vulnerability in the ComposerController#mentions endpoint that reveals hidden group membership to any authenticated user capable of messaging the group. An attacker can exploit this by supplying hidden-membership group names and probing arbitrary usernames to infer membership based on whether the user_reasons field returns 'private', effectively bypassing group member-visibility controls designed to protect sensitive group information. This vulnerability is not known to be actively exploited in the wild (KEV status unknown), carries a moderate CVSS score of 5.3 reflecting low confidentiality impact with low attack complexity, and requires prior authentication.

RemediationAI

Immediately upgrade Discourse to version 2026.1.2, 2026.2.1, or 2026.3.0-latest.1 or later, depending on your current minor version—see https://github.com/discourse/discourse/security/advisories/GHSA-5f9h-vp7v-7vq5 for version-specific guidance. Until patching is feasible, apply the vendor-recommended workaround: restrict the messageable policy of any hidden-membership group to staff or group members only, preventing untrusted authenticated users from reaching the vulnerable endpoint code path. This eliminates the attack precondition (ability to message the group) while maintaining intended group confidentiality. Verify group settings in the Discourse admin panel and audit existing group messageable policies to identify and remediate high-risk configurations.

Affected VersionsENISA

discourse 2026.2.0-latest, < 2026.2.1
discourse 2026.1.0-latest, < 2026.1.2
discourse = 2026.3.0-latest

Affected Packages

euvd discourse no fix
euvd discourse_2026_1_0_latest fix: 2026.1.2
euvd discourse_2026_2_0_latest fix: 2026.2.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

The vulnerability stems from CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor) in Discourse's message composer functionality. Specifically, the ComposerController#mentions endpoint fails to properly enforce access controls when validating group names supplied via the allowed_names parameter. When a user probes membership of a hidden-membership group, the endpoint returns user_reasons data containing a 'private' indicator if the queried username exists in the group, while returning different indicators for non-members or non-existent users. This information leakage occurs despite the group having hidden membership visibility settings. The root cause is insufficient authorization checking that assumes users cannot meaningfully interact with groups they are not supposed to access, but the endpoint permits authenticated users with basic messaging permissions to query the endpoint and extract membership details through pattern analysis.

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

GitHub Advisory PRIMARY 4.3 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N

Primary rating from GitHub Advisory · only source for this CVE.

CVSS VectorGitHub Advisory

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

Lifecycle Timeline

2
Patch available
Apr 16, 2026 - 05:29 EUVD
2026.2.1,2026.1.2
CVE Published
Mar 20, 2026 - 03:15 nvd
MEDIUM 4.3

DescriptionGitHub Advisory

Discourse is an open-source discussion platform. Prior to versions 2026.3.0-latest.1, 2026.2.1, and 2026.1.2, the ComposerController#mentions endpoint reveals hidden group membership to any authenticated user who can message the group. By supplying allowed_names referencing a hidden-membership group and probing arbitrary usernames, an attacker can infer membership based on whether user_reasons returns "private" for a given user. This bypasses group member-visibility controls. Versions 2026.3.0-latest.1, 2026.2.1, and 2026.1.2 contain a patch. To work around this issue, restrict the messageable policy of any hidden-membership group to staff or group members only, so untrusted users cannot reach the vulnerable code path.

Executive ViewAI

Why It Matters

Organizations using Discourse should be aware of moderate risk from CVE-2026-31869, a information exposure vulnerability rated CVSS 4.3. Sensitive information could be exposed to unauthorized parties. Organizations should apply vendor updates when available and monitor for exploitation.

Business Impact: Low
Compensating Controls

Apply vendor patch. If patching is delayed: restrict endpoint access, redact sensitive data in logs.

Threat Intelligence Overview

EPSS Score
0.0%
Top 89% exploitable
Data Quality
7 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.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
Defer
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
Low
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