CVE-2026-59830 Discourse: Stored XSS via unescaped actor name in post actions
Attackers can execute arbitrary scripts in other users' browsers by crafting display names that persist in post action descriptions.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- A user has to click or open something
- Fix
- Available
What is CVE-2026-59830?
CVE-2026-59830 is a medium-severity cross-site scripting vulnerability in discourse, published on 21 Sep 2026. Any signed-in user can exploit it over the network, and only if a user opens a file or follows a link.
Official description
Discourse is an open-source discussion platform. Prior to 2026.7.0, the post action component failed to escape user-controlled display names before interpolating them into an HTML string passed to trustHTML. A user who could choose a crafted display name could persist markup in post action descriptions. Viewing the affected user activity streams could execute attacker-controlled script in another user's browser. This issue is fixed in version 2026.7.0.
Weakness: CWE-79
Which versions are affected by CVE-2026-59830?
1 open source package ship an affected version, including discourse.
| Package | Affected | Fixed in |
|---|---|---|
discourse Bitnami | All versions | 2026.7.0 |
How do I fix CVE-2026-59830?
Upgrade discourse to 2026.7.0 or later.
Escape output for the context it lands in and set a strict Content Security Policy. Upgrading the affected component is the real fix. More about Cross-site scripting.
Is CVE-2026-59830 being exploited?
There is no known exploitation of CVE-2026-59830 in the wild and no public exploit code.
Sources
Also known as BIT-discourse-2026-59830, GHSA-x6mf-p7cg-69rw.