Severity by source
AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
PR:L for authenticated-only injection; S:C and C:H/I:H reflect victim browser session takeover; A:N as no service disruption results.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
4DescriptionCVE.org
Discourse is an open-source discussion platform. Prior to 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0, the Rich Text Editor rendered a chat-transcript username as HTML, allowing stored cross-site scripting. This issue is fixed in versions 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0.
AnalysisAI
Stored cross-site scripting in Discourse's Chat plugin allows an authenticated user to inject arbitrary HTML and JavaScript into any viewer's browser session by embedding a malicious payload in the username field of a chat-transcript quote block. The Rich Text Editor rendered the username attribute via innerHTML without sanitization, meaning any authenticated Discourse member with chat access could craft a quote block that executes attacker-controlled script when a victim - potentially a moderator or administrator - views the transcript. Patch versions 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0 are confirmed released; no public exploit code or active exploitation (CISA KEV) has been identified at time of analysis.
Technical ContextAI
Discourse is an open-source Ruby on Rails discussion platform with a ProseMirror-based Rich Text Editor. The flaw lives in plugins/chat/assets/javascripts/lib/rich-editor-extension.js, where the chat-transcript node renderer constructed DOM content using userElement.innerHTML = '<span ...>${node.attrs.username}</span>', inserting the unsanitized username attribute from a BBCode-style [chat quote] block directly into the DOM as HTML markup. CWE-79 (Improper Neutralization of Input During Web Page Generation - Stored XSS) describes this class precisely: user-supplied data flows into a sink that parses it as HTML rather than text. The fix, confirmed in commit 32920affe4ad97b461ca2ae2f664c5fefc374baf, replaces innerHTML assignment with individual document.createElement calls using textContent, ensuring the username is treated as a plain text node and never parsed by the HTML engine. The CPE cpe:2.3:a:discourse:discourse:*:*:*:*:*:*:*:* covers all Discourse releases prior to the patched versions.
RemediationAI
Upgrade to one of the patched Discourse releases: 2026.1.6, 2026.5.2, 2026.6.1, or 2026.7.0, as confirmed by the vendor advisory at https://github.com/discourse/discourse/security/advisories/GHSA-wg48-qxjc-f459 and the associated commits (32920affe4ad97b461ca2ae2f664c5fefc374baf, 3fb1e8ead0d4f48d2cf55c8110825c7e8a6a45f5, 7eb35d076ab9b6a612e86182336ce9787ce402ea, 9633b8ecaf5a99f0407f5261b9bd1a05f7dac529). If immediate patching is not possible, administrators can disable the Chat plugin entirely as a compensating control - this eliminates the vulnerable code path but removes all chat functionality from the platform. Restricting chat access to a minimal set of highly trusted users reduces the attacker pool but does not eliminate the vulnerability. There is no configuration toggle that preserves Chat functionality while blocking this specific injection path prior to patching.
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
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
Discourse is an open source platform for community discussion. Rated critical severity (CVSS 9.1), this vulnerability is
Stored cross-site scripting in the Discourse discussion platform allows a low-privileged registered user to set a malici
Same weakness CWE-79 – Cross-site Scripting (XSS)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-55670