Discourse: Stored XSS via iframe encoded userinfo, fixed v 2026.1.8/6.3/7.2/8.0
CVE-2026-91134 Published on September 24, 2026
Discourse: Block post iframes whose encoded userinfo bypasses the allowed_iframes allowlist
Discourse is an open-source discussion platform. Prior to 2026.1.8, 2026.6.3, 2026.7.2, and 2026.8.0, the Discourse post sanitizer allowed a stored cross-origin iframe to bypass the allowed_iframes prefix policy when the iframe src contained encoded userinfo. The sanitizer validated a decoded form differently from the stored iframe src, allowing the browser to interpret an attacker-controlled host while the allowlist check accepted the encoded URL as an allowed prefix. An authenticated user with posting privileges could persist the iframe in a post and cause attacker-controlled cross-origin content to be rendered. This issue is fixed in versions 2026.1.8, 2026.6.3, 2026.7.2, and 2026.8.0.
Vulnerability Analysis
CVE-2026-91134 is exploitable with network access, and requires small amount of user privileges. This vulnerability is considered to have a low attack complexity. The potential impact of an exploit of this vulnerability is considered to have a small impact on confidentiality and integrity, and no impact on availability.
Weakness Type
Improper Input Validation
The product receives input or data, but it does not validate or incorrectly validates that the input has the properties that are required to process the data safely and correctly.
Products Associated with CVE-2026-91134
Want to know whenever a new CVE is published for Discourse? stack.watch will email you.
Affected Versions
discourse:- Version < 2026.8.0 is affected.
- Version >= 2026.7.0-latest, < 2026.7.2 is affected.
- Version >= 2026.6.0-latest, < 2026.6.3 is affected.
- Version >= 2026.1.0-latest, < 2026.1.8 is affected.