Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to Discourse instance
-
DeliverySend GET /form-templates.json
-
ExploitReceive templates including restricted-category entries
-
ExecutionEnumerate private template IDs
-
PersistFetch /form-templates/:id.json per private ID
-
ImpactExfiltrate template names and YAML field structure
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The form templates feature must be explicitly enabled in the Discourse instance settings - this is not a default-on configuration in all deployments. At least one form template must be assigned to a category with restricted access (private category) for there to be any sensitive data to disclose. The attacker must hold a valid authenticated session (any trust level); the CVSS 4.0 vector PR:L confirms unauthenticated access is not possible. What limits exploitation: the SSVC assessment of automatable=no reflects that an attacker must first enumerate template IDs or category configurations, the sensitive data exposed is limited to template names and YAML field structures (not credentials, post content, or user data), and the feature must be both enabled and populated with restricted-category templates for the vulnerability to yield any meaningful disclosure. These conditions together substantially reduce the realistic attack surface beyond the raw score. |
| Impact | The CVSS 4.0 score of 6.0 with vector AV:N/AC:L/AT:P/PR:L/UI:N/VC:H reflects a network-reachable, low-privilege endpoint with high confidentiality impact on the vulnerable system, but AT:P (specific attack requirement) correctly signals that the form templates feature must be enabled and private templates must exist - conditions not met in all deployments. The vendor's own characterization of impact as 'site configuration metadata' disclosure conflicts with the VC:H metric: the exposed data comprises template names and YAML field structures, not credentials, PII, or post content, which in CVSS 3.1 terms maps more accurately to C:L. SSVC classifies exploitation as none and automatable as no, aligned with the EPSS score of 0.04% at the 12th percentile - both signal negligible real-world exploitation probability. No KEV listing exists and no POC has been identified. Overall, this is a low operational priority despite a moderate CVSS score: the authentication prerequisite, the feature-gate dependency, and the low sensitivity of exposed data collectively make this a theoretical concern for most organizations rather than an urgent remediation. |
| Exploit ScenarioDerived | An authenticated Discourse user with only basic trust-level access sends a GET request to /form-templates.json, receiving a list that includes templates assigned to private categories they are not permitted to access. The user then fetches /form-templates/:id.json for any returned private template ID, obtaining the full YAML-structured field definitions. No POC is publicly available; exploitation requires only a valid session token and knowledge of the standard Discourse API endpoint. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 23, 2026
Missing authorization in Discourse's FormTemplatesController exposes form template names and structured YAML content from restricted categories to any authenticated user, regardless of their category permissions. All active release tracks prior to versions 2026.1.4, 2026.3.1, 2026.4.1, and 2026.5.0-latest.1 are affected when the form templates feature is enabled. Impact is bounded to site configuration metadata disclosure - no post content, credentials, or user data are reachable - and no public exploit or CISA KEV listing exists, consistent with the EPSS score of 0.04% at the 12th percentile.
RemediationAI
Upgrade Discourse to version 2026.1.4, 2026.3.1, 2026.4.1, or 2026.5.0-latest.1 depending on the active release track, as documented in the GitHub Security Advisory at https://github.com/discourse/discourse/security/advisories/GHSA-w6g7-p2p9-2m5h and implemented in commit ae5c9570fb918442c4d96abc83c1e7e169909b02. If immediate patching is not feasible, disabling the form templates feature in Discourse site settings eliminates the attack surface entirely at the cost of losing form-based topic submission functionality. No other compensating control is known to preserve form template functionality while preventing unauthorized reads, since the flaw is in the data access layer of the API endpoint itself. Operators can also audit existing form templates to assess whether any contain sensitive configuration data that would warrant priority patching.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 4 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-based open-source discussion platform (cpe:2.3:a:discourse:discourse:*:*:*:*:*:*:*:*). The root cause is CWE-862 (Missing Authorization): the index and show actions in FormTemplatesController invoked FormTemplate.all and FormTemplate.find_by without filtering by the requesting user's category-level permissions. Discourse enforces category access through a guardian-based permission model via Category.secured(guardian), but this was never applied to form template queries. The fix introduces an accessible_form_templates scope that joins CategoryFormTemplate with Category.secured(guardian), returning only templates assigned to categories the user may access plus templates not yet assigned to any category. The commit diff at ae5c9570fb918442c4d96abc83c1e7e169909b02 confirms the corrected query logic and adds regression tests for both the list and show endpoints against private categories.
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
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Network-accessible API requiring authenticated low-privilege access; confidentiality impact is low given only form template metadata (names and YAML structure) is disclosed, not credentials or sensitive user data.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Discourse is an open-source discussion platform. In versions prior to 2026.1.4, 2026.3.1, 2026.4.1 and 2026.5.0-latest.1, an authenticated user on a Discourse instance with the form templates feature enabled can read the name and structured content of form templates that are intended exclusively for categories they are not authorized to access. Impact is limited to disclosure of site configuration metadata. This issue has been fixed 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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Related Vulnerabilities in Discourse Information Leak and Missing Auth
View all 2Discourse 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-30821
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB