Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as regular Discourse user
-
DeliveryInitiate S3 multipart upload via ExternalUploadManager API
-
ExploitManipulate destination parameter to target admin backup store prefix
-
ExecutionServer skips authorization check (CWE-862)
-
ImpactAttacker-controlled file written to admin backup store
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the attacker to hold a valid regular user account on the target Discourse instance (PR:L per CVSS vector). The Discourse deployment must have direct S3 multipart uploads enabled and configured - this is a non-default configuration requiring an administrator to have set up an S3 bucket and enabled the ExternalUploadManager flow. Instances using local file storage are not affected by this specific code path. What limits exploitation: authentication is mandatory (unauthenticated access is not possible per PR:L); S3 direct upload must be explicitly enabled by an admin; the impact is write-only to the admin backup store - no read access or remote code execution is implied by the available data. On closed-registration or invite-only forums, the attacker pool is further constrained to existing account holders. |
| Impact | The CVSS 3.1 score of 6.5 (Medium) with vector AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N accurately reflects the threat profile: network-exploitable over standard HTTP, low attack complexity, requiring only a regular user account (PR:L), with no user interaction needed. The high integrity impact (I:H) reflects the ability to write arbitrary content into the privileged admin backup store. Confidentiality and availability are unaffected per the vector. EPSS data was not provided in the source intelligence, so exploitation probability cannot be quantified numerically. The vulnerability is not listed in CISA KEV, and no public proof-of-concept has been identified. Real-world risk is moderate but context-dependent: on open-registration Discourse forums, obtaining a low-privilege account is trivial, lowering the effective barrier. The absence of confidentiality impact limits the immediate data exfiltration threat, but integrity compromise of the backup store could enable backup poisoning or interference with disaster recovery operations. No conflicting signals between data sources were identified. |
| Exploit ScenarioDerived | An attacker registers or already holds a standard (non-admin) account on a Discourse instance configured with direct S3 multipart uploads. They initiate an upload via ExternalUploadManager, manipulating the upload destination parameter to target the admin backup store S3 prefix rather than the user content bucket. Because the authorization check is absent, the server completes the multipart upload and stores the attacker-controlled file in the admin backup store, potentially overwriting legitimate backup objects or injecting malicious content into the backup archive. No public proof-of-concept has been identified, but the attack requires only standard HTTP requests and knowledge of the ExternalUploadManager API. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 09, 2026
Unauthorized write access to the admin backup store in Discourse allows any authenticated regular user to route S3 multipart uploads into a storage area that should be restricted to administrators. The flaw exists in ExternalUploadManager, which fails to enforce authorization checks (CWE-862) when accepting direct S3 multipart upload requests, meaning a low-privilege account holder can target the admin backup destination path without restriction. No active exploitation has been confirmed by CISA KEV, and no public exploit code has been identified at time of analysis, but the low attack complexity and network accessibility make this a credible threat on any Discourse deployment using S3 direct uploads.
RemediationAI
Vendor-released patches are confirmed at versions 2026.6.0, 2026.5.1, 2026.4.2, and 2026.1.5, available at github.com/discourse/discourse/releases. Administrators should upgrade to the appropriate patched release for their branch as the primary remediation. The four fix commits (1f1ded8, 7ddde26, a53df26, abaa664) on the main GitHub repository can be reviewed for context. If immediate upgrade is not possible, a compensating control would be to restrict S3 direct upload functionality at the network or IAM policy level - specifically, deny the S3 bucket policy permissions that allow the Discourse application role to write to the backup prefix from non-admin-initiated sessions. This trade-off introduces operational friction for legitimate large-file uploads. Restricting new user registrations or requiring email approval for accounts reduces the pool of potential low-privilege attackers on public forums but does not eliminate risk from existing regular accounts. The GitHub Security Advisory is available at github.com/discourse/discourse/security/advisories/GHSA-3mvf-q9rg-w6m7.
Affected VersionsENISA
Affected Packages
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-based discussion platform that supports Amazon S3 as an external storage backend. The ExternalUploadManager component handles direct-to-S3 multipart upload flows, where clients upload file parts directly to S3 rather than routing through the Discourse server. The admin backup store is a privileged S3 prefix or bucket used to store Discourse database and file backups, normally restricted to administrator-initiated operations. CWE-862 (Missing Authorization) identifies the root cause: the server-side code that processes multipart upload completions via ExternalUploadManager does not verify whether the requesting user has the authorization level required to write to the admin backup store destination, allowing the access control boundary between regular users and admin storage to be bypassed at the S3 object routing layer.
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
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
Network-exploitable web app requiring only a low-privilege account; write-only impact to admin storage with no confidentiality or availability consequence.
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
1DescriptionCVE.org
Discourse is an open-source discussion platform. Prior to 2026.6.0, 2026.5.1, 2026.4.2, and 2026.1.5, regular users could route direct S3 multipart uploads through ExternalUploadManager into the admin backup store. This issue is fixed in versions 2026.6.0, 2026.5.1, 2026.4.2, and 2026.1.5.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Discourse versions prior to 3.5.0.beta6 contain a reflected cross-site scripting (XSS) vulnerability in social login fun
discourse-bbcode is the official BBCode plugin for Discourse. Rated critical severity (CVSS 9.8), this vulnerability is
Unauthorized information disclosure in Discourse discussion platform versions prior to 2026.3.0-latest.1, 2026.2.1, and
Discourse is an open source platform for community discussion. Rated high severity (CVSS 8.2), this vulnerability is rem
Discourse versions prior to 2025.12.2, 2026.1.1, and 2026.2.0 contain an insecure direct object reference (IDOR) in the
In Discourse 2.7.0 through beta1, a rate-limit bypass leads to a bypass of the 2FA requirement for certain forms. Rated
Unauthenticated attackers can submit forged webhook payloads to multiple email provider integrations in Discourse versio
Discourse is an open-source discussion platform. Rated medium severity (CVSS 6.5), this vulnerability is remotely exploi
Discourse is an open source platform for community discussion. Rated medium severity (CVSS 5.9), this vulnerability is r
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
Discourse is an open source platform for community discussion. Rated critical severity (CVSS 9.8), this vulnerability is
Discourse Patreon enables syncronization between Discourse Groups and Patreon rewards. Rated critical severity (CVSS 9.8
EUVD-2026-42729
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB