Severity by source
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
Primary rating from Vendor (GitHub_M) · only source for this CVE.
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
4DescriptionCVE.org
Discourse is an open-source discussion platform. From versions 2026.1.0-latest to before 2026.1.3, 2026.2.0-latest to before 2026.2.2, and 2026.3.0-latest to before 2026.3.0, updating a category description via API is not sanitizing the description string, which can lead to XSS attacks. This issue has been patched in versions 2026.1.3, 2026.2.2, and 2026.3.0.
AnalysisAI
Stored cross-site scripting (XSS) in Discourse category description API endpoints allows authenticated users with category management privileges to inject malicious scripts that execute in the browsers of other users viewing the category. The vulnerability affects Discourse versions 2026.1.0 through 2026.1.2, 2026.2.0 through 2026.2.1, and 2026.3.0-pre-release due to missing input sanitization on category description updates. Vendor-released patches address this in versions 2026.1.3, 2026.2.2, and 2026.3.0; no public exploit code has been identified at time of analysis.
Technical ContextAI
The vulnerability exists in Discourse's category management API endpoint that handles category description updates. The root cause is classified under CWE-79 (Improper Neutralization of Input During Web Page Generation), a classic stored XSS vector. When a user with category management permissions submits a category description via the API, the input string is not properly sanitized or HTML-escaped before being stored in the database and subsequently rendered in user interfaces. This allows attackers to embed HTML/JavaScript payloads that persist and execute whenever other users access the affected category. The affected product is the Discourse discussion platform (cpe:2.3:a:discourse:discourse:*:*:*:*:*:*:*:*), which is widely deployed as both open-source self-hosted instances and as a SaaS offering.
RemediationAI
Upgrade to patched versions immediately: Discourse 2026.1.3 or later for the 2026.1 branch, 2026.2.2 or later for the 2026.2 branch, or 2026.3.0 or later for the 2026.3 branch. The upstream fix is available in commit 05e3da2a670cfd499649128b6c955b552451240b (https://github.com/discourse/discourse/commit/05e3da2a670cfd499649128b6c955b552451240b), which implements proper input sanitization for category description fields in the API. After patching, audit category descriptions in existing instances to identify and remove any previously injected malicious content. As an interim measure, restrict category management permissions to trusted administrators only and monitor API logs for suspicious category description updates.
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-79 – Cross-site Scripting (XSS)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-17550