Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Endpoint is network-accessible without authentication (AV:N/PR:N), attack is straightforward once the site setting is enabled (AC:L), and impact is limited to disclosure of tag group names only (C:L/I:N/A:N).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.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, DetailedTagSerializer#tag_group_names returned every tag group a tag belonged to without filtering against the requesting user's visibility. With SiteSetting.tags_listed_by_group enabled, anonymous and unprivileged users hitting TagsController#info (which is exempt from requires_login) could read the names of tag groups restricted to specific user groups or non-visible categories. This issue has been patched in versions 2026.1.4, 2026.3.1, 2026.4.1, and 2026.5.0-latest.1.
AnalysisAI
Tag group name disclosure in Discourse exposes restricted organizational metadata to anonymous and unprivileged users via a serializer that omits visibility filtering. Affected release lines are 2026.1.x (before 2026.1.4), 2026.3.x (before 2026.3.1), and 2026.4.x (before 2026.4.1), with the root cause being that DetailedTagSerializer#tag_group_names returned all group memberships without consulting the requesting user's permissions. An unauthenticated attacker can enumerate the names of tag groups restricted to specific user groups or non-visible categories, potentially leaking the internal structure of private forum spaces; no public exploit code has been identified at time of analysis and EPSS is 0.04% (11th percentile), indicating negligible observed exploitation activity.
Technical ContextAI
Discourse is a Ruby on Rails-based discussion platform (CPE: cpe:2.3:a:discourse:discourse:*:*:*:*:*:*:*:*). The vulnerability resides in the DetailedTagSerializer class, whose #tag_group_names method aggregated all tag group associations for a given tag without applying the visibility rules that govern which groups the requesting user is permitted to see. The TagsController#info action, which invokes this serializer, is explicitly exempt from the requires_login filter, meaning it is accessible to anonymous HTTP clients by default. When the SiteSetting.tags_listed_by_group feature flag is enabled, the serialized response includes tag group names that administrators have restricted to specific user groups or linked to non-visible categories. The root cause maps to CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor): authorization logic was enforced at the controller layer but not propagated through to the serializer layer, creating a classic broken object-level authorization gap.
RemediationAI
The primary remediation is to upgrade Discourse to a patched release: 2026.1.4 for the 2026.1.x branch, 2026.3.1 for the 2026.3.x branch, 2026.4.1 for the 2026.4.x branch, or 2026.5.0-latest.1 for the latest stable channel. Full advisory details are at https://github.com/discourse/discourse/security/advisories/GHSA-4q5q-6hh6-53x2. As an interim compensating control for operators unable to patch immediately, disabling the SiteSetting.tags_listed_by_group configuration option in the Discourse admin panel eliminates the vulnerable code path entirely, since the serializer's tag group enumeration is only triggered when this feature is active; the trade-off is loss of the grouped tag browsing UI for all users. There is no known network-layer workaround (e.g., blocking a specific endpoint) that would fully mitigate the issue without impacting legitimate tag-browsing functionality, since the TagsController#info endpoint serves other purposes.
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
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
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
Discourse is an open source platform for community discussion. Rated critical severity (CVSS 9.8), this vulnerability is
Unauthorized access to hidden post revisions in Discourse through version enumeration allows unauthenticated users to by
Same weakness CWE-200 – Information Exposure
View allSame technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-36561