
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-27454 is a missing authorization vulnerability in Discourse, an open-source discussion platform, that allows unauthenticated attackers to read hidden post revisions by enumerating version numbers via the /posts/:id.json?version=X endpoint. Disclosed on March 19, 2026, it affects Discourse versions 2026.1.0 through 2026.1.1, 2026.2.0, and 2026.3.0-latest (pre-patch). It carries a CVSS v3.1 base score of 5.3 (Medium) (GitHub Advisory).
The root cause is CWE-862 (Missing Authorization) in the display_post method within app/controllers/posts_controller.rb. The vulnerable code called post.revert_to(params[:version].to_i) directly without first looking up the corresponding PostRevision record or invoking guardian.ensure_can_see! to verify visibility permissions — a check that was already correctly implemented in the separate /posts/:id/revisions/:revision endpoint. The fix adds a PostRevision.find_by lookup followed by guardian.ensure_can_see!(post_revision) before allowing the revert, closing the authorization gap (GitHub Advisory, Patch Commit).
Successful exploitation allows any unauthenticated user to read post revision content that staff members have intentionally hidden, potentially exposing administrative notes, moderation decisions, sensitive edits, or other confidential information embedded in post history. The impact is limited to confidentiality — there is no integrity or availability impact — but the exposure of staff-concealed content could undermine trust, reveal internal moderation processes, or disclose sensitive community information (GitHub Advisory).
No public proof-of-concept exploit code is known to exist, and there is no evidence of in-the-wild exploitation at this time. The vulnerability requires no authentication, no user interaction, and no special privileges, making it trivially exploitable by anyone who can reach the Discourse instance. The EPSS score is approximately 0.03% (0.000300), indicating a low probability of exploitation in the near term, and it is not listed in the CISA KEV catalog (GitHub Advisory).
version parameter: GET /posts/<id>.json?version=1, GET /posts/<id>.json?version=2, etc./posts/<id>.json?version=<N> with sequentially incrementing version numbers from the same source IP./posts/*.json endpoint with varying version query parameters, particularly from unauthenticated sessions or anonymous users.Upgrade Discourse to one of the patched versions: 2026.1.2 (for the 2026.1.x branch), 2026.2.1 (for the 2026.2.x branch), or 2026.3.0-latest.1 (for the 2026.3.x branch). No configuration-based workarounds are available for unpatched versions. Instances hosting sensitive discussions or staff-only forums where post revision history may contain confidential information should be prioritized for immediate patching (GitHub Advisory).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."