Severity by source
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
Stored XSS exploitable by any authenticated user (PR:L) targeting admin browser session (S:C, UI:R); no availability impact applies.
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, the staff action log model rendered unescaped previous and new value fields that could inject stored cross-site scripting into the staff interface. The issue is fixed in 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0.
AnalysisAI
Stored XSS in Discourse's staff action log interface allows authenticated users to inject malicious HTML into log entries that execute in administrator browser sessions. All Discourse releases prior to 2026.1.6 are affected, with the root cause being an unescaped rendering of previous_value and new_value fields in the admin frontend model. No active exploitation or public exploit code has been identified at time of analysis; vendor-released patches across four stable branches confirm the issue is fully remediated.
Technical ContextAI
The vulnerability exists in frontend/discourse/admin/models/staff-action-log.js, where the format() helper function was invoked with a third argument of false for both new_value and previous_value fields. This false argument explicitly disabled HTML escaping, causing the Ember/Handlebars rendering layer to treat user-supplied log field content as raw HTML rather than plain text. Per CWE-79, this is a stored XSS - the malicious payload persists in the UserHistory database record and is re-executed each time a staff member loads the /admin/logs/staff_action_logs view. The fix, confirmed across three commits, removes the false escape-disabling argument so the format() function applies its default HTML sanitization. The CPE cpe:2.3:a:discourse:discourse:*:*:*:*:*:*:*:* covers all Discourse editions.
RemediationAI
Upgrade Discourse to a patched release: 2026.1.6, 2026.5.2, 2026.6.1, or 2026.7.0, as documented in the vendor advisory at https://github.com/discourse/discourse/security/advisories/GHSA-8x29-vv56-wj6v. The fix is implemented across commits 66601a6e, 74ae22d8, and fd44510b. As a compensating control before patching, restrict access to /admin/logs/staff_action_logs to the minimum set of highly trusted administrators, reducing the population of sessions that can trigger payload execution; note this does not prevent malicious content from being written into log records. Additionally, reviewing and enforcing strict Content Security Policy headers may limit the impact of injected scripts, though CSP bypass is not ruled out without further testing.
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-55664