Skip to main content

Discourse EUVDEUVD-2026-42734

| CVE-2026-53962 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-07-09 security-advisories@github.com
5.4
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

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

  1. Access
    Register low-privilege Discourse account
  2. Delivery
    Upload crafted SVG with embedded JavaScript payload
  3. Exploit
    Identify or construct triggering non-standard URL
  4. Execution
    Lure authenticated victim to triggering URL
  5. Persist
    XSS payload executes in victim browser
  6. Impact
    Exfiltrate session token or perform privileged action

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

An authenticated Discourse account with upload privileges is required (PR:L - any registered forum member qualifies under default configurations). The malicious SVG must be submitted through the upload or avatar handling workflow. The critical limiting condition is that the XSS payload fires only when a victim visits 'specific URLs that are not normally part of community browsing' - the precise URL pattern is not disclosed in the advisory, preventing passive exploitation through normal topic or post navigation. Active user interaction is required (UI:R): the victim must be directed to or independently visit the triggering URL. This non-standard URL requirement is the primary factor limiting mass or automated exploitation relative to a stored XSS that fires on every page view.

Impact

The CVSS 5.4 Medium score reflects the constrained but real impact: PR:L confirms any registered user can supply the malicious payload, while UI:R and the advisory's disclosure that the XSS only fires at 'specific URLs not normally part of community browsing' materially bounds opportunistic mass exploitation. An attacker cannot simply post to a discussion thread and passively harvest victims browsing normally. The S:C scope change is the primary risk amplifier - a triggered XSS can exfiltrate session cookies or perform privileged actions on behalf of administrative victims. No EPSS data was provided in the input intelligence; no public exploit code is referenced; and CISA KEV has not listed this vulnerability, all pointing toward low active exploitation pressure at time of analysis. Risk is highest for forums with open registration, untrusted user content, and administrative users who may be directed to uncommon platform URLs.

Exploit ScenarioDerived

An attacker registers or uses an existing low-privilege account on a target Discourse instance, uploads a crafted SVG file containing an embedded JavaScript payload as their avatar or a file attachment, then socially engineers an administrator or privileged user into visiting the specific non-standard URL that triggers SVG rendering in-browser. Upon visiting that URL, the victim's browser executes the attacker's JavaScript, potentially exfiltrating session tokens or performing administrative actions on the attacker's behalf. No public proof-of-concept code has been identified at time of analysis.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Jul 09, 2026

Stored cross-site scripting in Discourse's SVG upload and user avatar handling allows authenticated users to inject malicious JavaScript that executes in victims' browsers when they visit specific non-standard URLs. The CVSS scope change (S:C) reflects that successful exploitation crosses the browser security boundary, enabling session token theft or account takeover against victims who visit the triggering URL. Vendor-confirmed patches are available across four release branches; no public exploit code or CISA KEV listing has been identified at time of analysis.

RemediationAI

The primary fix is to upgrade Discourse to one of the vendor-patched releases: v2026.6.0, v2026.5.1, v2026.4.2, or v2026.1.5, all available via the GitHub releases page (https://github.com/discourse/discourse/releases). The underlying fixes are delivered across four commits (3ee8343, 810c271, 92a699d, b8ceb49) and are confirmed by the vendor advisory GHSA-jmcf-3367-78vv. As a compensating control pending upgrade, administrators can remove 'svg' from the allowed upload extensions in Admin Settings under Files → authorized_extensions - this eliminates the SVG attack surface entirely at the cost of disabling SVG avatar and attachment support for all users. No other specific workarounds are documented in the available references.

Affected VersionsENISA

discourse 2026.1.0-latest, < 2026.1.5
discourse 2026.4.0-latest, < 2026.4.2
discourse 2026.5.0-latest, < 2026.5.1

Affected Packages

euvd discourse_2026_1_0_latest fix: 2026.1.5
euvd discourse_2026_4_0_latest fix: 2026.4.2
euvd discourse_2026_5_0_latest fix: 2026.5.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 a Ruby on Rails-based open-source forum platform widely self-hosted by communities and organizations. The flaw (CWE-79: Improper Neutralization of Input During Web Page Generation) stems from insufficient sanitization of SVG files submitted through upload and avatar handling workflows. SVG is an XML-based vector format that legally supports embedded JavaScript via inline <script> elements, event handler attributes (onload, onerror, onclick), and javascript: URIs - making it a well-known XSS vector when not properly sanitized before browser rendering. The CVSS vector S:C (scope change) indicates the injected script executes outside the origin of the vulnerable component, consistent with same-origin policy bypass patterns common in avatar/upload serving contexts. Four upstream commits (3ee8343, 810c271, 92a699d, b8ceb49) address the sanitization logic across affected branches.

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) PRIMARY 5.4 MEDIUM
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
vuln.today AI 5.4 MEDIUM

PR:L because any registered user can upload SVGs; UI:R because victim must navigate to specific non-standard URLs; S:C for cross-origin JavaScript execution in victim's browser context.

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

Primary rating from Vendor (github).

CVSS VectorVendor: github

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

Lifecycle Timeline

1
Patch available
Jul 09, 2026 - 23:02 EUVD

DescriptionCVE.org

Discourse is an open-source discussion platform. Prior to 2026.6.0, 2026.5.1, 2026.4.2, and 2026.1.5, insufficient SVG sanitization in upload and user avatar handling could lead to cross-site scripting when a user visited specific URLs that are not normally part of community browsing. This issue is fixed in versions 2026.6.0, 2026.5.1, 2026.4.2, and 2026.1.5.

Threat Intelligence Overview

EPSS Score
0.3%
Top 82% exploitable
Prevalence
Medium
popular open-source forum platform, widely self-hosted by communities
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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

27
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +27
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