CVE-2026-91121: Discourse: Chat upload filenames rendered as raw HTML in excerpts
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.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Discourseto a version that resolves this vulnerability.Fixed in 2026.1.8 - Upgrade
Upgrade
Discourseto a version that resolves this vulnerability.Fixed in 2026.6.3 - Upgrade
Upgrade
Discourseto a version that resolves this vulnerability.Fixed in 2026.7.2 - Upgrade
Upgrade
Discourseto a version that resolves this vulnerability.Fixed in 2026.8.0
Event History
Frequently Asked Questions
Who can exploit this issue?
An attacker needs an account or other permission that allows them to upload a file and send chat content. They can use markup in the uploaded file's filename, which is then rendered in chat excerpts.
Which parts of a Discourse site can display the injected content?
Affected excerpt renderers include chat channel lists, chat summary emails, pinned message bars, reply previews, and thread previews, as well as other locations that render chat excerpts.
Does the default configuration allow JavaScript execution?
JavaScript execution was not demonstrated under the default Content Security Policy settings. Sites that disable or relax the default CSP have increased exposure.
Which versions contain the fix?
The issue is fixed in Discourse versions 2026.1.8, 2026.6.3, 2026.7.2, and 2026.8.0.