CVE-2026-91121 json
Discourse: Chat upload filenames rendered as raw HTML in excerpts
published 2026-09-24 45 d ago modified 2026-10-01 39 d ago also BIT-discourse-2026-91121 , EUVD-2026-86306 , GHSA-34rh-wjfv-65gq
- cvss
- 5.0
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 17%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- bitnami discourse 2026.8.0
- discourse discourse 2026.1.8, 2026.6.3, 2026.7.2, 2026.8.0
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 45 d ago
Exploit prediction
0.26% chance of exploitation in the next 30 days, higher than 17% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 5.0 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:L/A:N |
| OSV | 3.1 | 5.0 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:L/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| bitnami | discourse | <2026.8.0 |
2026.8.0 |
Affected products
- discourse discourse
Classification
- Weakness
-
- CWE-79 Improper Neutralization of Input During Web Page Generation
References
-
github.com
/discourse/discourse/pull/42882
web
-
github.com
/discourse/discourse/commit/24cd7cc4c868f20e6037d67d801d60c3e289b278
web
-
github.com
/discourse/discourse/commit/6e7a181909c34a059d2b0a6291335a363205b787
web
-
github.com
/discourse/discourse/commit/9d6f5e64a1cb68e8208520e4209b361e14f7394b
web
-
github.com
/discourse/discourse/commit/af197941f7613a3845cba21d217641c77c8ef836
web
-
github.com
/discourse/discourse/security/advisories/GHSA-34rh-wjfv-65gq
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-91121
web
Sources
- CVE List CVE-2026-91121
- NVD CVE-2026-91121
- OSV BIT-discourse-2026-91121
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.