CVE-2026-91122
8.7Discourse · Discourse
The Discourse video placeholder component is vulnerable to Stored Cross-site Scripting (XSS) via attribute breakout, allowing authenticated users to execute arbitrary JavaScript in other users' sessions.
Executive summary
A stored XSS vulnerability in the Discourse video placeholder component allows authenticated users to execute malicious scripts in the sessions of other users, posing a high risk of account takeover.
Vulnerability
This is a stored Cross-site Scripting (CWE-79) vulnerability triggered by improper sanitization of video placeholders. An authenticated user with standard posting privileges can inject malicious JavaScript that executes when a victim interacts with the video overlay, potentially bypassing CSP restrictions if they are misconfigured.
Business impact
Successful exploitation could lead to unauthorized actions performed on behalf of legitimate users, including administrative accounts. Given the CVSS score of 8.7, this is a high-severity risk that could result in the theft of session tokens, sensitive data exfiltration, or complete compromise of user accounts within the platform.
Remediation
Immediate Action: Update Discourse instances to versions 2026.1.8, 2026.6.3, 2026.7.2, or 2026.8.0, depending on the current branch, to ensure the patch is applied.
Proactive Monitoring: Review application access logs for unusual JavaScript errors or suspicious patterns in user-generated content, specifically around post rendering.
Compensating Controls: Ensure strict Content Security Policy (CSP) headers are enabled and enforced, as these act as a critical defense-in-depth measure against inline script execution.
Exploitation status
Public Exploit Available: Unknown
Analyst recommendation
This vulnerability presents a significant risk to platform integrity and user security. Administrators should prioritize the deployment of the provided patches immediately. If an immediate update is not feasible, restrict the ability of untrusted users to post video content as a temporary containment measure.
More Discourse CVEs
History
- Disclosed CVE record published
- Collected by CVE Brief via github
- Analyst report written
- Published in the daily brief high section
Sources
- https://github.com/discourse/discourse/security/advisories/GHSA-8m44-f6g9-7cg7
- https://github.com/discourse/discourse/pull/42882
- https://github.com/discourse/discourse/commit/05d92b8749f68d2626cbe65ec7adde7562a0283d
- https://github.com/discourse/discourse/commit/5674b3e6594825c28d2678e55057fd6802f11031
- https://github.com/discourse/discourse/commit/c3993e318e172389be5c98455177876f1dd87dda
- https://github.com/discourse/discourse/commit/d7126af3264b672d2201d84c18a37cb8627424a8