Skip to main content

Discourse CVE-2026-72729

| EUVDEUVD-2026-55669 LOW
Cross-site Scripting (XSS) (CWE-79)
2026-08-10 GitHub_M
2.0
CVSS 4.0 · Vendor: GitHub_M

Severity by source

Vendor (GitHub_M) PRIMARY
2.0 LOW
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:A/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
4.4 MEDIUM

AC:H reflects the non-default CSP-disabled prerequisite; PR:L for required authentication; UI:R for victim viewing; S:C because XSS crosses into victim browser context.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
A
Scope
X

Lifecycle Timeline

3
Patch available
Aug 10, 2026 - 17:03 EUVD
Source Code Evidence Fetched
Aug 10, 2026 - 16:51 vuln.today
Analysis Generated
Aug 10, 2026 - 16:51 vuln.today

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 discourse-local-dates plugin rendered crafted local-date format data as HTML on sites with a modified or disabled default Content Security Policy. This issue is fixed in versions 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0.

AnalysisAI

Cross-site scripting in Discourse's discourse-local-dates plugin allows an authenticated attacker to inject arbitrary HTML by embedding crafted markup in local-date format attributes (data-format, data-displayed-timezone, data-timezone), which were interpolated directly into the DOM via template literals instead of safe DOM text APIs. Exploitation is gated by a non-default condition: the site's Content Security Policy must be modified or disabled from the default. No public exploit independent of the vendor fix commits exists at time of analysis, and this is not listed in CISA KEV. The CVSS 4.0 score of 2.0 reflects the constrained attack requirements (AT:P, PR:L, UI:A).

Technical ContextAI

Discourse (cpe:2.3:a:discourse:discourse:*:*:*:*:*:*:*:*) is a Ruby on Rails/Ember.js open-source forum platform. The discourse-local-dates plugin processes span elements carrying data-date, data-time, data-format, data-timezone, and data-displayed-timezone HTML attributes, converting them to localized date representations. The vulnerable code path in plugins/discourse-local-dates/assets/javascripts/initializers/discourse-local-dates.js used JavaScript template literal string interpolation (${localDateBuilder.formatted}) to build inner HTML, meaning attacker-controlled values in those data attributes were rendered as raw HTML rather than escaped text. CWE-79 (Stored/Reflected XSS) is the root cause class - the plugin failed to distinguish between data and markup when inserting user-influenced content into the DOM. The fix replaces string interpolation with document.createElement() + textContent assignment, ensuring values are always treated as plain text regardless of content.

RemediationAI

Upgrade Discourse to one of the patched versions: 2026.1.6, 2026.5.2, 2026.6.1, or 2026.7.0, depending on the release branch in use. Patch commits are available at https://github.com/discourse/discourse/commit/9768f476ed86ea202440cd2b6245af8a4f94ec69, https://github.com/discourse/discourse/commit/981ba23d33d2e2d98f6690734116af58f2cea938, https://github.com/discourse/discourse/commit/a7e509bfa1aa6288b447503de6ef798c31a62751, and https://github.com/discourse/discourse/commit/d5d5055fbdf04d5bd72fcaa7e4257fac5adac049. As a compensating control for sites that cannot immediately update, ensure Discourse's default Content Security Policy is enabled and unmodified - this alone prevents the XSS payload from executing even in the presence of the injection. Disabling or weakening CSP is the activation condition for this vulnerability, so restoring the default CSP eliminates exploitability without requiring the plugin patch. No trade-offs exist in re-enabling the default CSP beyond possible breakage of custom third-party integrations that depend on relaxed CSP directives.

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-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-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

CVE-2021-41163 CRITICAL
9.8 Oct 20

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

CVE-2026-27454 MEDIUM POC
5.3 Mar 19

Unauthorized access to hidden post revisions in Discourse through version enumeration allows unauthenticated users to by

Share

CVE-2026-72729 vulnerability details – vuln.today

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