CVE-2026-91119
Deferred
Deferred - Pending Action
Stored XSS in Discourse via Unencoded Action Code
Vulnerability report for CVE-2026-91119, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.
Publication date: 2026-09-24
Last updated on: 2026-09-24
Assigner: GitHub, Inc.
Description
Description
Discourse is an open-source discussion platform. Prior to 2026.1.8, 2026.6.3, 2026.7.2, and 2026.8.0, the topic small-action and nested-activity-log components interpolated the free-form action_code_who value into mention-link href attributes without URL encoding. A quote-bearing display name could terminate the intended URL attribute and inject attacker-controlled elements into the trusted rendered markup. Although the visible mention text was escaped, the unencoded path component allowed stored HTML injection when another user viewed the affected topic action or activity log. This issue is fixed in versions 2026.1.8, 2026.6.3, 2026.7.2, and 2026.8.0.
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| discourse | discourse | 2026.1.8 |
| discourse | discourse | 2026.6.3 |
| discourse | discourse | 2026.7.2 |
| discourse | discourse | 2026.8.0 |
| discourse | discourse | to 2026.1.8 (exc) |
| discourse | discourse | to 2026.6.3 (exc) |
| discourse | discourse | to 2026.7.2 (exc) |
| discourse | discourse | to 2026.8.0 (exc) |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-79 | The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users. |