CVE-2026-91134: Discourse: Block post iframes whose encoded userinfo bypasses the allowed_iframes allowlist

Published Sep 24, 2026
·
Updated

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 allowediframes 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.

Affected Software

1 affected component
Discourse Discourse<2026.1.8, <2026.6.3, <2026.7.2, <2026.8.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade Discourse to a version that resolves this vulnerability.

    Fixed in 2026.8.0

Event History

Sep 24, 2026
CVE Published
via MITRE·04:51 PM
Data Sourced
via MITRE·04:51 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·05:17 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Who can exploit this issue?

An authenticated Discourse user with permission to create posts can exploit it. They must be able to submit a post containing a crafted iframe source URL with encoded userinfo.

2

What is the impact on users viewing a malicious post?

The crafted iframe can persist in a post and render attacker-controlled cross-origin content in the viewer's browser. The reported impact is limited confidentiality and integrity impact, with no availability impact.

3

Are installations using an iframe allowlist affected?

The issue affects the post sanitizer's allowed_iframes prefix policy. A crafted encoded-userinfo URL can pass that policy while the browser resolves the iframe to an attacker-controlled host.

4

Which Discourse versions contain the fix?

The issue is fixed in Discourse versions 2026.1.8, 2026.6.3, 2026.7.2, and 2026.8.0.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203