MEDIUM 5.3

CVE-2026-59828: Discourse Post Revision Information Disclosure

Discourse, an open-source discussion platform, contains a vulnerability that allows post revision history to leak information that should remain hidden from regular users. When users view adjacent post revisions, the serialization process can expose diffs that include content from hidden revisions. This affects instances running Discourse versions prior to 2026.6.0, 2026.5.1, 2026.4.2, or 2026.1.5. The leak occurs through normal diff display functionality rather than requiring special privileges, though the impact is limited to information disclosure.

Source data · NVD / CISA · public domain

CVSS
3.1 · 5.3 MEDIUM · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Weaknesses (CWE)
CWE-200
Affected products
2 configuration(s)
Published / Modified
2026-07-09 / 2026-07-13

NVD description (verbatim)

Discourse is an open-source discussion platform. Prior to 2026.6.0, 2026.5.1, 2026.4.2, and 2026.1.5, post revisions that should be hidden from regular users could be leaked through visible diffs on adjacent revisions serialized by PostRevisionSerializer. This issue is fixed in versions 2026.6.0, 2026.5.1, 2026.4.2, and 2026.1.5.

9 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

The vulnerability stems from improper handling of post revisions in the PostRevisionSerializer component. Specifically, when generating visible diffs for adjacent post revisions, the serializer does not properly filter out revisions that should remain hidden from non-administrative users. An unauthenticated network client can view post history and retrieve diffs that inadvertently include content from restricted revisions. The issue affects multiple Discourse version branches, indicating a systemic serialization logic flaw rather than an isolated edge case. The fix ensures that hidden revision content is excluded from diff calculations and serialization output.

Business impact

Organizations running Discourse-based communities face potential information disclosure that undermines moderation controls. Deleted moderator notes, retracted sensitive information, or hidden administrative comments could become visible to regular community members through post diff inspection. This is particularly concerning for internal Discourse deployments where revision history control is part of compliance or operational governance. The exposure is passive—users viewing posts can inadvertently discover information—rather than a direct system compromise, but it erodes the integrity of community content governance.

Affected systems

Discourse instances running versions before 2026.6.0 (current release), 2026.5.1 (LTS branch), 2026.4.2 (maintenance branch), or 2026.1.5 (extended support branch) are vulnerable. The issue affects all Discourse deployments regardless of hosting model—self-hosted and managed instances are equally at risk. Specific version status should be verified against the official Discourse advisory, as patch availability varies by release channel.

Exploitability

Exploitation requires no authentication, no special privileges, and no user interaction. An attacker simply needs network access to a vulnerable Discourse instance and can view post revisions through normal browsing to inspect diffs. The attack surface is the public-facing post revision endpoint. However, the attacker must already know which posts have multiple revisions to target them, and the leaked content depends on what was previously edited and hidden—random scanning is inefficient. The barrier to exploitation is low once an instance is identified as vulnerable.

Remediation

Update Discourse to one of the patched versions: 2026.6.0, 2026.5.1, 2026.4.2, or 2026.1.5, depending on your current release track. Verify the patch version against the official Discourse release notes before deploying. After patching, review access logs to determine whether post revisions were accessed during the vulnerability window; this may not detect exploitation definitively but can inform incident response scope.

Patch guidance

Discourse provides patched versions across multiple release branches to accommodate different update cadences. Identify your current version (visible in the admin console) and select the corresponding patched version: upgrade to 2026.6.0 if running current releases, 2026.5.1 if on the long-term support branch, 2026.4.2 if on an earlier maintenance branch, or 2026.1.5 for extended support. Test the patch in a staging environment before production deployment to ensure compatibility with customizations or plugins. Schedule downtime minimally; Discourse typically supports zero-downtime or brief-downtime updates depending on deployment configuration.

Detection guidance

Look for patterns of repeated access to post revision endpoints (typically /posts/{id}/revisions or similar REST paths) from the same user agent or IP, especially if the user account is not an administrator. Anomalous diff requests or requests that retrieve multiple revisions in sequence may indicate reconnaissance. Review admin audit logs for when hidden revisions were marked as such and cross-reference with web access logs for the same posts during subsequent viewing sessions. Exact detection depends on your Discourse logging configuration and access log retention.

Why prioritize this

Although the CVSS score is MEDIUM (5.3), prioritization should account for your use of Discourse and the sensitivity of content within your community. If Discourse stores internal communications, sensitive discussions, or moderated content, the risk is heightened despite the moderate score. The lack of CISA KEV listing suggests this is not currently exploited at scale in the wild, providing a window for patching before active weaponization. Patch within 2-4 weeks if Discourse is critical; within 4-8 weeks if it is ancillary.

Risk score, explained

The CVSS 3.1 score of 5.3 reflects the low barrier to exploitation (network-based, no authentication, no user interaction) balanced against the limited scope of impact (information disclosure only, no system compromise, no integrity change). Confidentiality impact is rated low because the leaked content is limited to revision diffs that an attacker must already suspect exist. Availability and integrity are unaffected. The score does not escalate to high despite the ease of exploitation because the information disclosed is contextual and reactive, not broadly exploitable across instances or for privilege escalation.

Frequently asked questions

Can an attacker modify posts or inject content through this vulnerability?

No. The vulnerability is strictly an information disclosure issue. Attackers cannot modify, delete, or create posts; they can only view revision diffs that should be hidden. Integrity of post content is not compromised.

Do I need to worry about this if I do not use post revision history?

The vulnerability requires that posts have multiple revisions. If your Discourse instance or community practices avoid editing posts or purge revision history regularly, the attack surface is smaller, but you should still patch to eliminate the risk entirely.

What is the difference between the patched versions?

Discourse provides patches across multiple version branches (2026.6.0, 2026.5.1, 2026.4.2, 2026.1.5) to support different update policies. Choose the patched version that corresponds to your current branch. There is no functional difference in the security fix; the versions are released on different timelines.

How can I tell if my instance was exploited?

Definitive detection is difficult because accessing post revisions is normal user behavior. Review your access logs during the vulnerability window to identify unusual patterns: rapid sequential revision requests from a single IP, requests from non-human user agents (bots), or revisions accessed by accounts that do not typically interact with that post's thread. However, absence of suspicious logs does not guarantee you were not exploited.

This analysis is provided for informational purposes and does not constitute legal or compliance advice. Verify all patch version numbers, affected product lists, and remediation steps against official Discourse security advisories before taking action. CVSS scores and severity ratings reflect the NVD calculation and may not align with your organization's risk model. Testing patches in non-production environments is mandatory. Liability for security decisions and patch deployment outcomes rests with the deploying organization. Source: NVD (public-domain), retrieved 2026-08-17. Analysis generated by SEC.co (claude-haiku-4-5).