Skip to main content

Discourse EUVDEUVD-2026-55667

| CVE-2026-72728 MEDIUM
Improper Input Validation (CWE-20)
2026-08-10 GitHub_M
6.3
CVSS 3.1 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
6.3 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L
vuln.today AI
5.4 MEDIUM

Network-reachable via authenticated users (PR:L, AV:N); content injection yields limited confidentiality and integrity impact; no availability impact is substantiated by the iframe injection mechanism described.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/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
None
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
Low

Lifecycle Timeline

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

DescriptionCVE.org

Discourse is an open-source discussion platform. Prior to 2026.1.7, an authenticated user could submit specially formed URLs that bypassed the Onebox allowlist and embedded malicious content in a site. This issue is fixed in versions 2026.1.7, 2026.6.2, 2026.7.1, and 2026.8.0-latest.1.

AnalysisAI

Onebox allowlist bypass in Discourse (all versions prior to 2026.1.7) enables authenticated forum users to embed malicious iframes and attacker-controlled content in posts by exploiting a regex prefix-matching flaw in the origins_to_regexes method. The core defect - missing URL boundary anchors and an overly permissive wildcard expansion - allows domains like youtube.com.attacker.example to pass validation as the allowlisted youtube.com. No public exploit has been identified at time of analysis and the vulnerability is absent from the CISA KEV catalog; vendor-released patches exist as versions 2026.1.7, 2026.6.2, 2026.7.1, and 2026.8.0-latest.1.

Technical ContextAI

Discourse's Onebox feature resolves URLs in posts to rich previews and oEmbed iframes using a configurable origin allowlist. The vulnerability resides in lib/onebox/engine.rb within the origins_to_regexes method, which converts allowlisted origin strings into Ruby regular expressions. Two compounding flaws existed: (1) the wildcard character * was expanded to \S*, which matches any non-whitespace character including ? and # - permitting attackers to use query or fragment components to inject a matching domain suffix (e.g., attacker.example?.kaltura.com/); and (2) the resulting regex used only a prefix anchor (\A) with no URL boundary requirement, so an allowlisted origin https://youtube.com positively matched https://youtube.com.attacker.example. The fix changes the wildcard expansion to [^/?#]* (restricting to a single URL authority segment) and appends a boundary group (?::\d+(?:[/?#]|\z)|[/?#]|\z) to host-only origins. CWE-20 (Improper Input Validation) is the root cause class - oEmbed iframe source URLs were matched against the allowlist without enforcing URL structural boundaries, allowing a class of URL authority confusion attacks.

RemediationAI

Upgrade Discourse to version 2026.1.7, 2026.6.2, 2026.7.1, or 2026.8.0-latest.1 as confirmed by the GitHub Security Advisory (https://github.com/discourse/discourse/security/advisories/GHSA-qp9j-3v7r-wrvr) and the upstream fix commit (https://github.com/discourse/discourse/commit/92eec47e8b477cb8b4ccdb237e26dc1ba8f8b76b). For sites unable to upgrade immediately, removing all entries from the Onebox origin allowlist eliminates the bypass surface entirely, though it also disables all legitimate iframe embeds (YouTube, Vimeo, etc.) - operators should weigh this functionality trade-off carefully. A narrower compensating control is to restrict post creation or Onebox triggering to higher trust levels, reducing the pool of users who can submit URLs for resolution; this preserves embed functionality for trusted users while limiting exposure from lower-trust accounts.

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

EUVD-2026-55667 vulnerability details – vuln.today

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