Skip to main content

Discourse EUVDEUVD-2026-42731

| CVE-2026-45788 MEDIUM
Information Exposure (CWE-200)
2026-07-09 security-advisories@github.com
6.3
CVSS 4.0 · Vendor: github
View

Attack ChainAIDerived

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

  1. Access
    Obtain secure upload URL via side-channel (logs, email, insider)
  2. Delivery
    Embed URL as image hotlink in a new post
  3. Exploit
    pull_hotlinked_images background job processes the post
  4. Execution
    Job fetches secured URL bypassing access control enforcement
  5. Impact
    Protected file content exposed outside authorized context

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK

2 techniques across 2 tactics: Collection, Discovery

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

Exploitation Conditions

Two specific conditions must both be true for exploitation: (1) the Discourse instance must have the secure_uploads site setting explicitly enabled - this is not the default configuration and must be deliberately activated by an administrator; and (2) the attacker must already know or have obtained the specific secured upload URL for the target file, as the attack does not enumerate or discover files independently. Limiting factors include: the prerequisite of URL knowledge significantly reduces opportunistic exploitation; the attack requires the targeted Discourse instance to be processing posts (the pull_hotlinked_images job must be active); and confidentiality impact is restricted to the specific files whose URLs are already compromised. There is no requirement for authentication to trigger the hotlink pull based on the CVSS PR:N vector, but an actor capable of creating or manipulating posts (even as a regular forum member) is the expected attacker profile.

Impact

The CVSS 4.0 base score of 6.3 with vector AV:N/AC:H/AT:P/PR:N/UI:N/VC:L reflects a moderate but conditional risk. The AC:H and AT:P metrics are the critical moderating factors: exploitation requires the attacker to already possess the specific secure upload URL, which represents a significant prerequisite since the secure_uploads feature is specifically designed to prevent URL-based access. VC:L (low confidentiality impact to the vulnerable system) is consistent with the scoped nature of the disclosure - only files whose URLs are already known are at risk. No EPSS score was provided in the input data; prevalence of exploitation cannot be estimated from available signals. This vulnerability is not in CISA KEV. No POC code has been identified. The real-world risk is therefore conditional: instances where secure_uploads is enabled and where secure URLs may have leaked via logs, notification emails, chat exports, or insider access are genuinely at risk, while instances where URL secrecy is maintained are not. This is a real security gap for high-sensitivity deployments (e.g., healthcare, legal, confidential document sharing via Discourse), but not a broad opportunistic exploitation scenario.

Exploit ScenarioDerived

An attacker who has obtained a Discourse secure upload URL - for example, from a leaked notification email, a shared post export, server-side logs, or insider access - embeds that URL as an image hotlink in a new post on an affected Discourse instance. When the pull_hotlinked_images background job processes the post, it fetches the content at the secure URL without enforcing the secure_uploads access controls, effectively pulling the protected file into a context where it is exposed. No POC code is publicly available at time of analysis, but the fix commits are public and could allow reconstruction of the vulnerability.

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

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

Alert me

AnalysisAIv1 – Jul 09, 2026

Secure upload bypass in Discourse exposes protected files through the pull_hotlinked_images feature, which fails to enforce the secure_uploads access control when processing posts containing a known secure URL. Affected instances are those running versions prior to 2026.6.0, 2026.5.1, 2026.4.2, or 2026.1.5 with the secure_uploads site setting enabled. No public exploit has been identified at time of analysis and this vulnerability is not listed in CISA KEV; however, the fix commits are publicly visible on GitHub, potentially aiding reverse-engineering of the flaw.

RemediationAI

The primary fix is to upgrade Discourse to one of the patched releases: v2026.6.0, v2026.5.1, v2026.4.2, or v2026.1.5, all available as tagged GitHub releases (https://github.com/discourse/discourse/releases/tag/v2026.6.0, v2026.5.1, v2026.4.2, v2026.1.5). Four upstream commits address the issue (5807c426880eadf248006e851604fc9284327ce5, 8b4a959b251a856a9c911fb9f2ac34fbc31a7471, eff53af26367ae0dcb3a426954d233e8c7449f95, fa74e0dec7341a858ab83a1977fa52629bced1aa). If immediate upgrade is not possible, a compensating control is to disable the secure_uploads site setting (Admin > Settings), though this removes the upload access-control feature entirely and should be treated as a temporary measure only. Alternatively, administrators can audit and rotate any secure upload URLs that may have been exposed to untrusted parties, reducing the attack surface without disabling the feature. Disabling the pull_hotlinked_images job is theoretically a scoped mitigation but may affect content fidelity and is not officially recommended.

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 an open-source Ruby on Rails discussion platform that offers a secure_uploads site setting designed to restrict direct URL-based access to uploaded files, typically serving them through authenticated, time-limited signed URLs. The pull_hotlinked_images background job is a content-hygiene feature that re-hosts external images referenced in posts to the local Discourse storage, preventing hotlinking and preserving image availability. The vulnerability (CWE-200: Exposure of Sensitive Information to an Unauthorized Actor) arises because this job fetches URLs without properly enforcing the access control layer applied by secure_uploads, meaning a secure upload URL embedded in a post can be fetched and its content exposed by the job outside of the normal authorization flow. No CPE string was provided in the input, but the affected software is identifiable as the Discourse application across multiple tracked stable branches (v2026.1.x, v2026.4.x, v2026.5.x, v2026.6.x).

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 6.3 MEDIUM
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 3.7 LOW

Network vector with high complexity due to prerequisite URL knowledge; no authentication required per PR:N; limited confidentiality impact with no integrity or availability consequences.

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

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
High
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: 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, secure uploads could be exposed by pull_hotlinked_images when an attacker knew the secured upload URL and the secure_uploads site setting was enabled. 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.5%
Top 63% exploitable
Prevalence
Medium
popular open-source forum platform in tech and community deployments
Data Quality
7 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.5%
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

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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