☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Discourse logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 4.2 CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:U/C:H/I:N/A:N 🐛 CWE-862
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-84302

CVE-2026-84302 Missing Authorization in Discourse
📅 PUBLISHED: 2026-09-24 00:00 UTC 🔄 UPDATED: 2026-09-25 23:54 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.24%
👁️
0.24% probability
6.0× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1213
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: United States License: Open Source
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 4.2
AV: N Attack Vector Network
AC: H Attack Complexity High
PR: H Privileges Required High
UI: R User Interaction Required
S: U Scope Unchanged
C: H Confidentiality High
I: N Integrity None
A: N Availability None
4.2
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-84302 is a missing-authorization vulnerability (CWE-862) in the open-source Discourse discussion platform, affecting releases prior to 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0. A flaw in Discourse AI reviewable visibility filtering allows an authenticated moderator who is not a participant in a private message to view, and in some cases modify, Discourse AI reviewables derived from that private message. Impact is confidentiality-focused (C:H) with a limited integrity side effect where the moderator can close the topic or delete a post; exploitation requires a privileged moderator account, a pre-existing AI reviewable, and user interaction (CVSS 3.1 base 4.2).

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Technical Analysis

Discourse is an open-source discussion platform that includes a "Discourse AI" subsystem capable of generating reviewables — items surfaced into a moderator review queue for human adjudication. Reviewables can be associated with ordinary public topics, but they can also be associated with private messages (Discourse private-message topics are only accessible to their participants).

The vulnerability is classified as CWE-862: Missing Authorization. Per the NVD description, the reviewable visibility filtering logic did not restrict private-message reviewables to the audience permitted to access the underlying private-message topic. In practice this means the authorization filter that decides which reviewables a given moderator may see failed to apply the private-message participant check to AI reviewables tied to private messages.

Consequently, an authenticated moderator who is not a participant in a given private message could:

  • See the private-message reviewable appear in their moderator review queue, and
  • Read otherwise confidential content contained in that reviewable (disclosure of private-message content).

Depending on which reviewable actions were available, the same moderator could also modify the private message by closing its topic or deleting a post — an integrity-affecting side effect of the same missing authorization check.

Attack surface and preconditions:

  • Network-reachable (AV:N), since moderator review queues are served through the normal Discourse web interface.
  • High privileges required (PR:H): the attacker must hold a moderator account.
  • High attack complexity (AC:H): a pre-existing Discourse AI reviewable associated with a private message must exist for the target; this is not fully attacker-controlled.
  • User interaction required (UI:R): consistent with a moderator needing to open/view the review queue entry.

No specific class names, method names, URL endpoints, or parameters beyond "reviewables," "moderator review queue," and "private message topic" are provided in the source data, so the code-level detail above is limited to that description. No public PoC or Nuclei template is available; the mechanism is inferred from the CWE-862 class and the vendor description.

Exploitation Scenarios

No public PoC is available; the attack chain below is inferred from the vulnerability class and the NVD description.

  1. Reconnaissance / target identification. The attacker identifies a Discourse instance running an affected version (prior to 2026.1.6, 2026.5.2, 2026.6.1, or 2026.7.0) with the Discourse AI reviewable feature in use. The attacker must already possess (or obtain) a moderator account — this is a low-noise, "insider-adjacent" precondition.

  2. Triggering the specific flaw. No exploit payload is needed for the core disclosure. The attacker, logged in as a moderator who is not a participant in a target private message, simply browses their moderator review queue. Because reviewable visibility filtering does not restrict private-message reviewables to the permitted audience, a Discourse AI reviewable associated with the private-message topic is presented to the attacker. The precondition is that at least one such AI reviewable already exists (AC:H, UI:R).

  3. Payload / execution method. At the vulnerability-class level this is not a code-execution or injection flaw; there is no payload. Exploitation is the act of requesting/opening the review queue such that the unauthorized reviewable is returned and rendered to the moderator. Any "payload" is the inherent missing authorization check on the reviewable-listing path, not an attacker-supplied string.

  4. Post-exploitation impact. The moderator reads confidential private-message content (C:H). Where the reviewable exposes an actionable control, the moderator can further modify the private message by closing its topic or deleting a post — a limited integrity effect on data the moderator is not authorized to alter.

Impact Assessment

  • Confidentiality (High, C:H): The primary impact. Private-message content surfaced through AI reviewables is disclosed to moderators outside the intended participant audience, defeating the confidentiality guarantee of private messages.
  • Integrity (None per CVSS, but noted functionally): The description explicitly states that depending on the available reviewable action the moderator could "modify the private message by closing its topic or deleting a post." CVSS records I:N and A:N, reflecting that any modification is bounded (close topic / delete post) rather than arbitrary; analysts should treat this as a low-but-real integrity concern at the application layer.
  • Availability (None, A:N): No availability impact.
  • Subscores: AV:N (remote, web), AC:H (requires a pre-existing AI reviewable), PR:H (moderator account required), UI:R (interaction to view the queue), S:U (impact stays within the Discourse authorization scope), base score 4.2.
  • Blast radius: Any Discourse deployment that (a) runs an affected version, (b) uses Discourse AI reviewables, and (c) has private messages processed by that subsystem. Because exploitation requires a moderator account, the realistic threat model is a malicious or careless insider, a compromised moderator credential, or over-broad moderator role assignment. The bug quietly erodes the trust boundary that separates moderator privileges from private conversation data.
  • EPSS: Not yet scored by FIRST.org; no EPSS value is asserted here. CISA KEV: NO. No known exploit-in-the-wild evidence is provided in the source data.

Detection Guidance

Sigma Rule

title: Discourse AI Private-Message Reviewable Viewed by Non-Participant Moderator
id: 0f9a1c2e-8430-26ab-9f00-discourseai0001
status: experimental
description: Detects moderator access to a Discourse AI reviewable associated with a private message where the moderator is not a participant (CVE-2026-84302, CWE-862).
references:
  - https://nvd.nist.gov/vuln/detail/CVE-2026-84302
author: valtersit.com
date: 2026/01/01
logsource:
  product: discourse
  service: application
detection:
  selection_reviewable:
    event: 'reviewable_viewed'
    reviewable_type: 'DiscourseAi::Reviewable'
  selection_private:
    target_is_private_message: true
  selection_nonparticipant:
    moderator_is_participant: false
  condition: selection_reviewable and selection_private and selection_nonparticipant
falsepositives:
  - Legitimate cross-team moderation of escalated private-message content
  - Instrumentation schema differences between Discourse versions
level: medium
tags:
  - attack.t1213
  - cve.2026-84302

YARA Rule

rule CVE_2026_84302_DiscourseAI_Reviewable_Leak
{
    meta:
        description = "Flags Discourse application logs referencing AI reviewables associated with private messages accessed by non-participant moderators (CVE-2026-84302)"
        author = "valtersit.com"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-84302"
        date = "2026-01-01"
        cve = "CVE-2026-84302"
    strings:
        $ai_reviewable = "DiscourseAi" ascii nocase
        $reviewable    = "reviewable" ascii nocase
        $private_msg   = "private_message" ascii nocase
        $pm_topic      = "private message" ascii nocase
        $nonparticip   = "not a participant" ascii nocase
    condition:
        filesize < 5MB and
        (($ai_reviewable and $reviewable and $private_msg) or
         ($reviewable and $pm_topic and $nonparticip))
}

Suricata IDS Rule

alert http any any -> any any (msg:"CVE-2026-84302 Discourse AI Private-Message Reviewable Access"; flow:to_server,established; http.host; content:"discourse"; nocase; http.uri; content:"/review"; nocase; http.uri; content:"reviewable"; nocase; http.header; content:"Discourse"; nocase; classtype:attempted-recon; sid:202684302; rev:1; metadata:cve CVE-2026-84302, created_at 2026_01_01, updated_at 2026_01_01;)

Elastic Detection

sequence by user.name with maxspan=2m
  [ authentication where user.roles : "moderator" ]
  [ http.request.method == "GET"
    and url.path : "/review*"
    and discourse.reviewable.type : "DiscourseAi*"
    and discourse.reviewable.target_is_private_message : true
    and discourse.reviewable.moderator_is_participant : false ]

Splunk SPL Query

index=discourse sourcetype=discourse:app
(event=reviewable_viewed OR event=review_action)
(reviewable_type="DiscourseAi*")
(target_is_private_message=true)
(moderator_is_participant=false)
| stats count min(_time) as first_seen max(_time) as last_seen
        values(action) as actions values(reviewable_id) as reviewables
        by moderator_username src_ip
| where count >= 1
| sort - first_seen

Wazuh OSSEC Rule

<group name="discourse,cve-2026-84302,">
  <rule id="202684302" level="8">
    <decoded_as>json</decoded_as>
    <field name="event">reviewable_viewed</field>
    <field name="reviewable_type">DiscourseAi</field>
    <field name="target_is_private_message">true</field>
    <field name="moderator_is_participant">false</field>
    <description>CVE-2026-84302: Moderator viewed Discourse AI reviewable tied to a private message they do not participate in</description>
    <mitre>
      <id>T1213</id>
    </mitre>
  </rule>
</group>

Mitigation & Patch Guidance

Patch confidence: 0/4 (UNPATCHED — no patch evidence from any tracked source). No vendor fix is available in the tracked sources, no workarounds are documented, and no patch references are present.

  1. Immediate mitigations (compensating controls):

    • Restrict moderator role assignment. Because exploitation requires a moderator account (PR:H), minimize the number and scope of moderator accounts and apply least privilege. Treat all moderators as members of a sensitive trust group.
    • Limit Discourse AI reviewable exposure to private messages if configuration permits — reduce or disable processing of private-message content by the Discourse AI reviewable subsystem until the vendor fix is applied.
    • Detect elevated risk of insider misuse. Baseline which moderators are participants in which private-message topics and alert on review-queue activity that crosses that boundary (see detection rules above).
    • Harden moderator authentication (strong MFA, session controls) to reduce the risk of compromised moderator credentials being used as the exploitation precondition.
  2. Patch / upgrade steps:

    • Per the NVD description, the issue is fixed in 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0. Upgrade to the fixed release on the appropriate maintenance track.
    • Note the conflicting signal: this feed records patch confidence 0/4 with no patch evidence from tracked sources. Until an authoritative vendor advisory is confirmed, treat the "fixed in" versions as the vendor's stated remediation and validate against Discourse's official release notes/changelog before relying on them.
  3. Long-term hardening:

    • Ensure authorization checks for reviewable visibility inherit the access-control context of the underlying topic (i.e., private-message reviewables must be restricted to the participant audience). Add regression tests that assert non-participant moderators cannot enumerate or view private-message reviewables.
    • Apply consistent authorization filtering across all reviewable sources, including AI-generated reviewables, so new reviewable types cannot reintroduce a CWE-862 gap.
    • Institute routine review of privileged-role access and periodic review of private-message handling in AI subsystems (data minimization for private content).

References

No known threat actor campaigns or exploit-in-the-wild evidence are associated with CVE-2026-84302 in the provided data; no public PoC, Nuclei template, or exploit code is available.

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

product:"Discourse"
title:"Discourse"
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-84302/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.