CVE-2026-84302
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).
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.
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.
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.
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).
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.
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.
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.
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.
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
- NVD — CVE-2026-84302: https://nvd.nist.gov/vuln/detail/CVE-2026-84302
- CWE-862: Missing Authorization — https://cwe.mitre.org/data/definitions/862.html
- Discourse project (official release notes / changelog) for the fixed versions 2026.1.6, 2026.5.2, 2026.6.1, 2026.7.0: https://github.com/discourse/discourse/releases
- CISA Known Exploited Vulnerabilities catalog (status check — not listed): https://www.cisa.gov/known-exploited-vulnerabilities-catalog
- FIRST EPSS (CVE not yet scored at time of writing): https://www.first.org/epss/
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.
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.