Discourse media uploads stay public after category is restricted
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Information disclosure, Security bypass
- Confidentiality · integrity · availability
- High · None · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-200 and CWE-863.
Summary
Discourse versions before 2026.1.9, and versions before 2026.7.3 and 2026.8.1 on their respective release lines, are affected. Sites with secure uploads enabled do not update upload access metadata when a public category becomes read-restricted or its permissions change during a bulk import (CWE-863). Media stays publicly accessible, so an unauthenticated remote attacker can reach uploads through their short upload URLs, including uploads tied to deleted topics.
Written with Claude Haiku 5.5 from the sources below · 2026-10-28
Description from the CNA
Discourse is an open-source discussion platform. Prior to 2026.9.0, 2026.8.1, 2026.7.3, and 2026.1.9, sites with secure uploads enabled did not reconcile existing upload security metadata when a previously public category became read-restricted or when category permissions changed during a bulk import. Media and attachments uploaded while the category was public retained a public accessibility flag and remained reachable by anonymous users through their short upload URLs, including uploads associated with deleted topics. This issue is fixed in versions 2026.9.0, 2026.8.1, 2026.7.3, and 2026.1.9.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| discourse | discourse | before 2026.1.9; 2026.7.0-latest to before 2026.7.3; 2026.8.0-latest to before 2026.8.1; 2026.9.0-latest to before 2026.9.0 | 2026.1.9, 2026.7.3, 2026.8.1, 2026.9.0 | Patch available | CNA |
- discourse Vendordiscourse Affected before 2026.1.9; 2026.7.0-latest to before 2026.7.3; 2026.8.0-latest to before 2026.8.1; 2026.9.0-latest to before 2026.9.0 Fixed in 2026.1.9, 2026.7.3, 2026.8.1, 2026.9.0 Patch available CNA
Remediation
Upgrade Discourse to 2026.1.9, 2026.7.3, 2026.8.1, or 2026.9.0, the fixed versions for each affected release line.
Written with Claude Haiku 5.5 from the sources below · 2026-10-28
- Fix · CNA discourse (discourse) Fixed in 2026.1.9, 2026.7.3, 2026.8.1, 2026.9.0
Timeline
- 2026-10-14 Threatist record created from CVE-2026-91157
- 2026-10-16 Priority changed: MEDIUM → LOW
- 2026-10-20 CISA SSVC decision points changed
References
Other 5
- https://github.com/discourse/discourse/security/advisories/GHSA-298h-xgw6-4pv3
- https://github.com/discourse/discourse/commit/16017732981fdb3ee65d7b3c69c573610bf02aab
- https://github.com/discourse/discourse/commit/83f5f9f1df7ddc79ec0950e1b2038ba659635708
- https://github.com/discourse/discourse/commit/98f1c021d0e956cded5239a5d8a6afe2b9e1b7e7
- https://github.com/discourse/discourse/commit/b2fb98394b2636b29e850f06b0029f8ca8b48458
More discourse vulnerabilities
- TI-2022-22806 Discourse BBCode plugin vulnerable to arbitrary CSS injection CVSS 3.1CRITICAL 9.8
- TI-2021-19656 Denial of Service in discourse CVSS 3.1MEDIUM 6.8
- TI-2024-36150 Potential Backup file leaked via Nginx in Discourse CVSS 3.1HIGH 7.5
- TI-2021-18002 RCE via malicious SNS subscription payload CVSS 3.1CRITICAL 10.0
- TI-2026-24651 Discourse: Open redirect via `sso_destination_url` cookie in `enter` CVSS 4.0MEDIUM 5.1
- TI-2022-18730 Discourse Patreon vulnerable to improper validation of email during Patreon authentication CVSS 3.1CRITICAL 9.8
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences