Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
Network-accessible endpoint requires a low-privilege authenticated session; only tag name strings are disclosed (C:L); no write capability or availability impact is possible through this flaw.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
3DescriptionCVE.org
Discourse is an open-source discussion platform. Prior to 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0, the discourse_templates endpoint exposed hidden tag names because DiscourseTemplates::TemplatesSerializer in plugins/discourse-templates/app/serializers/discourse_templates/templates_serializer.rb did not filter tags through the request Guardian. The serializer did not respect tag group permissions, allowing users to see tags they were not permitted to view. This issue is fixed in versions 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0.
AnalysisAI
Tag name information disclosure in Discourse's discourse-templates plugin exposes hidden tag names to any authenticated user via the /discourse_templates endpoint. The TemplatesSerializer in the plugin bypassed Discourse's Guardian authorization layer when serializing topic tags, causing tags belonging to restricted tag groups - such as staff-only labels - to appear in API responses regardless of the requesting user's permissions. Vendor-released patches are available across four version branches; no public exploit code or active exploitation has been identified.
Technical ContextAI
Discourse is a Ruby on Rails-based open-source community discussion platform whose authorization model centers on the Guardian class, which enforces per-request permission checks including tag group visibility. The discourse-templates plugin provides reusable post templates exposed via the /discourse_templates endpoint. The vulnerability resides in plugins/discourse-templates/app/serializers/discourse_templates/templates_serializer.rb, where the TemplatesSerializer serialized topic tags using object.tags.map(&:name) - a direct ActiveRecord traversal that bypasses Guardian filtering entirely. The root cause maps to CWE-862 (Missing Authorization): the serializer failed to consult the request-scoped Guardian when determining which tags were visible, silently ignoring tag group membership restrictions. The commit diff confirms the fix replaces that call with object.visible_tags(scope || Guardian.new).map(&:name).sort, correctly threading the request Guardian through the serialization path. The CPE cpe:2.3:a:discourse:discourse:*:*:*:*:*:*:*:* confirms all Discourse versions prior to the patched releases are affected when the discourse-templates plugin is active.
RemediationAI
The primary fix is upgrading to one of the vendor-patched Discourse releases: 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-xrgc-52m8-82hm and confirmed by commits 25e9d55b4c, c9b431b3b7, f216f258bd, and f41e71b645. If immediate patching is not feasible, disabling the discourse-templates plugin entirely removes the vulnerable /discourse_templates endpoint and eliminates the exposure, though this also disables all template functionality for users. A second workaround is to remove tag group permission restrictions temporarily if tag name confidentiality is not operationally critical; however, this is only appropriate when tag names carry no sensitive organizational meaning and should be reverted after patching. No generic network-level mitigations will prevent exploitation since the endpoint requires only normal authenticated HTTP access.
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-862 – Missing Authorization
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-55678