Read the docs
TI-2026-21453 Aliases CVE-2026-26973

Discourse doesn't scope reviewable notes to user-visible reviewables

Priority LOW 19CWE-863Published · Updated

Key facts

Attack vector
Network
Privileges required
Low
User interaction
None
Attack complexity
Low
Impact type
Security bypass
Confidentiality · integrity · availability
None · Low · None
Fix status
Fixed

Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-863.

Summary

Discourse is an open source discussion platform. Versions prior to 2025.12.2, 2026.1.1, and 2026.2.0 have an IDOR (Insecure Direct Object Reference) in `ReviewableNotesController`. When `enable_category_group_moderation` is enabled, a user belonging to a category moderation group can create or delete their own notes on **any** reviewable in the system, including reviewables in categories they do not moderate. The controller used an unscoped `Reviewable.find` and the `ensure_can_see` guard only checked whether the user could access the review queue in general, not whether they could access the specific reviewable. Only instances with `enable_category_group_moderation` enabled are affected. Staff users (admins/moderators) are not impacted as they already have access to all reviewables. The issue is patched in versions 2025.12.2, 2026.1.1, and 2026.2.0 by scoping the reviewable lookup through `Reviewable.viewable_by(current_user)`. As a workaround, disable the `enable_category_group_moderation` site setting. This removes the attack surface as only staff users will have access to the review queue.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00177 7th percentileScored 2026-11-07
Fix Fixed discourse (discourse): 2025.12.2, 2026.1.1, 2026.2.0

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
discoursediscoursebefore 2025.12.2; 2026.1.0-latest to before 2026.1.1; 2026.2.0-latest to before 2026.2.02025.12.2, 2026.1.1, 2026.2.0Patch availableCNA
  • discourse Vendordiscourse Affected before 2025.12.2; 2026.1.0-latest to before 2026.1.1; 2026.2.0-latest to before 2026.2.0 Fixed in 2025.12.2, 2026.1.1, 2026.2.0 Patch available CNA

CPE configurations NVD · 2

CPEVersionsRoleVendor
cpe:2.3:a:discourse:discourse:*:*:*:*:*:*:*:*before 2025.12.0; 2026.1.0 to before 2026.1.1Vulnerablediscourse
cpe:2.3:a:discourse:discourse:2026.2.0:*:*:*:latest:*:*:*2026.2.0Vulnerablediscourse
  • cpe:2.3:a:discourse:discourse:*:*:*:*:*:*:*:* Versions before 2025.12.0; 2026.1.0 to before 2026.1.1 Vulnerable ·discourse
  • cpe:2.3:a:discourse:discourse:2026.2.0:*:*:*:latest:*:*:* Versions 2026.2.0 Vulnerable ·discourse

Remediation

  • Fix · CNA discourse (discourse) Fixed in 2025.12.2, 2026.1.1, 2026.2.0

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-26973

References

  • 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-2026-22278 Discourse leaks private topic title and post excerpt via user action API endpoint CVSS 4.0HIGH 8.7
  • TI-2023-24152 Unauthenticated access to new private chat messages in Discourse CVSS 3.1HIGH 7.5
See all 262 →

Sources

This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences