Description
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.
Published: 2026-09-24
Score: 5.4 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Stored cross‑site scripting via iframe
Action: Patch immediately
AI Analysis

Impact

Stored iframe content can bypass the Discourse post sanitizer's allowlist when the iframe src contains encoded userinfo. The flaw allows an authenticated user with posting privilege to persist a cross‑origin iframe within a post. When a user opens the post, the browser interprets the attacker‑controlled host, rendering malicious content. This creates a stored cross‑site scripting vector, enabling phishing, defacement, or social‑engineering attacks, and is caused by improper input validation (CWE‑20).

Affected Systems

Versions of Discourse prior to 2026.1.8, 2026.6.3, 2026.7.2, and 2026.8.0 are susceptible. An authenticated user can embed a malicious iframe in any post on those installations. The most recent releases listed above contain the fix.

Risk and Exploitability

The CVSS score of 5.4 indicates moderate severity. EPSS score is not provided, and the vulnerability is not in the CISA KEV catalog. At least one authenticated user must have posting privileges to create the malicious post; once a target user views the post, the browser loads the attacker‑controlled cross‑origin content. The attack vector is local to the platform, but the impact is on any user who views the post.

Generated by OpenCVE AI on September 25, 2026 at 06:21 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the Discourse installation to version 2026.1.8 or later, which includes the post sanitizer fix.
  • If an upgrade cannot be performed immediately, disable all iframe content by setting the allowed_iframes list to empty or configuring the sanitizer to block cross‑origin iframes.
  • Inspect recent posts for embedded iframes and remove any suspicious content until the platform is patched.

Generated by OpenCVE AI on September 25, 2026 at 06:21 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 29 Sep 2026 03:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 24 Sep 2026 19:30:00 +0000

Type Values Removed Values Added
First Time appeared Discourse
Discourse discourse
Vendors & Products Discourse
Discourse discourse

Thu, 24 Sep 2026 17:00:00 +0000

Type Values Removed Values Added
Description 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.
Title Discourse: Block post iframes whose encoded userinfo bypasses the allowed_iframes allowlist
Weaknesses CWE-20
References
Metrics cvssV3_1

{'score': 5.4, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N'}


Subscriptions

Discourse Discourse
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-29T02:56:30.376Z

Reserved: 2026-09-14T19:36:48.844Z

Link: CVE-2026-91134

cve-icon Vulnrichment

Updated: 2026-09-29T02:56:26.475Z

cve-icon NVD

Status : Deferred

Published: 2026-09-24T17:17:09.080

Modified: 2026-09-29T03:17:21.580

Link: CVE-2026-91134

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-25T06:30:06Z

Weaknesses
  • CWE-20

    Improper Input Validation