Description
Discourse is an open-source discussion platform. Prior to 2026.9.0, 2026.8.1, 2026.7.3, and 2026.1.9, oEmbed processing treated an entire attacker-controlled HTML fragment as trusted when the fragment contained an iframe whose source matched the configured allowlist. A user with posting permission who controlled a public webpage and its oEmbed response could combine an allowlisted iframe with unrelated sibling HTML or CSS, causing stored visual overlays or other styled content to appear in post content and enabling misleading or fraudulent user interfaces. Exploitation requires a posting account, control of the fetched webpage and oEmbed response, and an allowlisted iframe source. The issue affects content integrity but does not expose restricted data, disrupt availability, or require interaction with Discourse Content Security Policy. This issue is fixed in versions 2026.9.0, 2026.8.1, 2026.7.3, and 2026.1.9.
Published: 2026-10-14
Score: 7.7 High
EPSS: < 1% Very Low
KEV: No
Impact: Stored HTML injection (cross-site scripting) resulting in UI manipulation
Action: Patch immediately
AI Analysis

Impact

Discourse’s oEmbed processing mistakenly trusted any attacker-controlled HTML fragment that contained an iframe whose source matched the configured allowlist. This flaw allows a user with posting permission who can control the remote webpage and its oEmbed response to embed their own iframe along with arbitrary sibling HTML or CSS. The stored content then renders in posts, creating misleading or fraudulent user interfaces. The impact is a violation of content integrity and the potential to deceive users, but it does not expose sensitive data or interrupt service availability.

Affected Systems

All Discourse installations running versions prior to 2026.9.0, 2026.8.1, 2026.7.3, or 2026.1.9 are affected. The vulnerability is specific to the open-source Discourse discussion platform.

Risk and Exploitability

The CVSS score of 7.7 indicates a high-severity flaw; the EPSS score is < 1% (0.00435), and the vulnerability is not listed in the CISA KEV catalog. Exploitation requires a valid posting account, ownership of the fetched webpage and its oEmbed response, and an iframe source that is on the allowlist. Attackers can succeed remotely by controlling the external content that Discourse pulls in, and the stored nature of the injection means that compromised posts persist until content is removed or the system is patched.

Generated by OpenCVE AI on October 15, 2026 at 19:01 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to Discourse 2026.9.0 or later to apply the oEmbed processing fix.
  • Limit the oEmbed allowlist to only essential domains to reduce the attack surface.
  • Review existing posts for injected iframe or unrelated HTML and remove or sanitize them.

Generated by OpenCVE AI on October 15, 2026 at 19:01 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 24 Oct 2026 02:45:00 +0000

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

Tue, 20 Oct 2026 02:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Wed, 14 Oct 2026 15:45:00 +0000

Type Values Removed Values Added
Description Discourse is an open-source discussion platform. Prior to 2026.9.0, 2026.8.1, 2026.7.3, and 2026.1.9, oEmbed processing treated an entire attacker-controlled HTML fragment as trusted when the fragment contained an iframe whose source matched the configured allowlist. A user with posting permission who controlled a public webpage and its oEmbed response could combine an allowlisted iframe with unrelated sibling HTML or CSS, causing stored visual overlays or other styled content to appear in post content and enabling misleading or fraudulent user interfaces. Exploitation requires a posting account, control of the fetched webpage and oEmbed response, and an allowlisted iframe source. The issue affects content integrity but does not expose restricted data, disrupt availability, or require interaction with Discourse Content Security Policy. This issue is fixed in versions 2026.9.0, 2026.8.1, 2026.7.3, and 2026.1.9.
Title Discourse: Stored oEmbed HTML injection via allowed iframe
Weaknesses CWE-79
References
Metrics cvssV3_1

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


Subscriptions

Discourse Discourse
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-20T01:33:56.005Z

Reserved: 2026-09-14T21:20:41.196Z

Link: CVE-2026-91159

cve-icon Vulnrichment

Updated: 2026-10-20T01:33:51.395Z

cve-icon NVD

Status : Deferred

Published: 2026-10-14T16:17:56.613

Modified: 2026-10-20T02:17:13.347

Link: CVE-2026-91159

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-24T02:30:17Z

Weaknesses
  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')