Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as upload-capable user
-
DeliveryUpload file with HTML markup in filename
-
ExploitSend chat message referencing upload
-
ExecutionExcerpt renderers output filename unescaped
-
ImpactInjected HTML alters other users' rendered views
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. |
| Exploitation Conditions | Requires an authenticated Discourse account with privileges to (a) upload a file and (b) post chat content, so the Discourse Chat feature must be enabled on the site. The attacker embeds HTML markup in the uploaded file's filename, which is then rendered unescaped by chat excerpt surfaces (channel lists, chat summary emails, pinned message bars, reply previews, thread previews). Exploitation is LIMITED to trusted-HTML injection under the default Content Security Policy - JavaScript execution was not demonstrated; only sites that DISABLE or RELAX the default CSP have increased exposure to script-level attacks. No unauthenticated or user-interaction-free path exists. |
| Impact | This is a genuinely low-priority issue despite a moderate 5.0 CVSS. The vector (AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:L/A:N) requires an authenticated user with upload-and-chat privileges, and the only rated impact is low integrity (I:L) - content/markup alteration of rendered excerpts, not code execution or data theft. Critically, the advisory itself states no confidentiality, integrity, or availability impact was identified, which conflicts with the structured scoring metadata that assigns I:L; this internal contradiction should be noted when triaging. No EPSS score is provided in the input, there is no CISA KEV listing, and no public exploit code was identified - so there is no evidence of active or automated exploitation. The most important limiter is that JavaScript execution was NOT demonstrated under Discourse's default Content Security Policy; exploitation is confined to trusted-HTML injection into excerpts, and only sites that disable or relax the default CSP face elevated (potential scripting) exposure. Net: a real but minor stored-content-injection bug, not a high-urgency threat. |
| Exploit ScenarioDerived | An authenticated user on a trust level permitting file uploads and chat crafts a file whose filename contains HTML markup, then sends chat content referencing it. The malicious filename is rendered unescaped in downstream excerpt surfaces (channel lists, chat summary emails, pinned message bars, reply/thread previews), altering what other users see; under default CSP this is limited to trusted-HTML injection with no demonstrated JavaScript execution. No public proof-of-concept was identified, and impact escalates only on sites running a disabled or relaxed CSP. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 24, 2026
Trusted-HTML injection in Discourse chat excerpt renderers lets an authenticated user who can both upload files and post chat content embed HTML markup in a filename, which is then rendered unescaped in chat channel lists, chat summary emails, pinned message bars, reply previews, thread previews and other excerpt surfaces. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:L/A:N, score 5.0) confirms the attacker must be authenticated and that only content integrity is affected, with scope change reflecting that the injected markup renders in contexts beyond the uploader's own message; no public exploit code has been identified at time of analysis and JavaScript execution was not demonstrated under the default Content Security Policy. The practical risk is low and is driven almost entirely by sites that have disabled or relaxed the default CSP, which the advisory notes have increased exposure to script-level attacks. Fixed versions are 2026.1.8, 2026.6.3, 2026.7.2 and 2026.8.0.
RemediationAI
Vendor-released patch: 2026.1.8, 2026.6.3, 2026.7.2 and 2026.8.0 - upgrade to the release matching your branch (stable sites to 2026.1.8 or later, beta/current sites to 2026.6.3, 2026.7.2 or 2026.8.0 as applicable), or cherry-pick the four upstream commits listed in the advisory. Full details are in the vendor advisory at https://github.com/discourse/discourse/security/advisories/GHSA-34rh-wjfv-65gq and the fixing pull request https://github.com/discourse/discourse/pull/42882. If an immediate upgrade is not possible, the highest-value compensating control is to preserve Discourse's default Content Security Policy unchanged - the advisory explicitly attributes elevated exposure to sites that disable or relax it, so any local CSP allowlist additions or inline-script relaxations should be reverted; the trade-off is that existing custom themes or integrations relying on relaxed CSP directives may break. Second, restrict the combination of privileges required for exploitation by limiting file-upload rights and chat posting to trusted groups (or disabling the Discourse Chat feature entirely on sites that do not use it), which removes the write primitive but degrades normal community functionality for the affected groups. Third, audit and prune chat summary email recipients and pinned-message content until patched, since email excerpts render outside the browser CSP sandbox and are the least defensible delivery surface. Note that no public exploit code has been identified at time of analysis and that the demonstrated impact is HTML injection rather than script execution under default CSP, so these measures should be prioritized below higher-risk items on the patch backlog.
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
The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation), specifically a context-confusion problem in Discourse's Ember/Handlebars frontend: an attacker-controlled upload filename was interpolated into excerpt strings that the client renders as trusted HTML rather than as escaped text. Because these excerpts are reused across multiple chat and activity surfaces (channel lists, summary emails, pinned bars, reply and thread previews), a single crafted filename propagates into many render paths. The 5.0 severity and the S:C scope shift reflect that payloads appear outside the originating message, though the default Discourse Content Security Policy blocks inline script execution, so demonstrated impact is limited to arbitrary trusted HTML that alters rendered excerpt content. Notably, the advisory body states no confidentiality, integrity or availability impact while its structured scoring metadata assigns low integrity impact; the independent assessment aligns with the structured metadata (I:L) and treats this as a low-priority hardening issue. The associated upstream pull request (42882) also hardens adjacent sinks in the same code path, including encoding mention actor names with encodeURIComponent before building href attributes, adding sanitize_sql_like to a URL lookup, and rejecting video placeholder sources containing attribute-breakout characters such as double quotes, indicating the maintainers treated the class of unsafe string-to-markup interpolation broadly rather than as a single-site fix.
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:C/C:N/I:L/A:N
Authenticated upload/chat user (PR:L), no interaction needed to plant the payload, injected HTML alters excerpts shown to other users (S:C, I:L); no confidentiality or availability impact and no demonstrated JS under default CSP.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Discourse is an open-source discussion platform. Prior to 2026.1.8, 2026.6.3, 2026.7.2, and 2026.8.0, attacker-controlled upload filenames used in chat message excerpts were rendered as unescaped HTML. A user able to upload a file and send chat content could place markup in a filename that was then interpreted by chat channel lists, chat summary emails, pinned message bars, reply previews, thread previews, and other excerpt renderers. The issue allowed trusted-HTML injection that altered rendered excerpt content, but JavaScript execution was not demonstrated with default Content Security Policy settings. The advisory states that no confidentiality, integrity, or availability impact was identified, while its structured scoring metadata separately assigns low integrity impact. Sites that disable or relax the default CSP have increased exposure. This issue is fixed in versions 2026.1.8, 2026.6.3, 2026.7.2, and 2026.8.0.
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.
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
EUVD-2026-86306
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB