DIscourse's discourse-policy plugin lacks post access check
Description
Discourse is an open source discussion platform. Prior to versions 2025.12.2, 2026.1.1, and 2026.2.0, discourse-policy plugin allows any authenticated user to interact with policies on posts they do not have permission to view. The PolicyController loads posts by ID without verifying the current user's access, enabling policy group members to accept/unaccept policies on posts in private categories or PMs they cannot see and any authenticated user to enumerate which post IDs have policies attached via differentiated error responses (information disclosure). The issue is patched in versions 2025.12.2, 2026.1.1, and 2026.2.0 by adding a guardian.can_see?(@post) check in the set_post before_action, ensuring post visibility is verified before any policy action is processed. As a workaround, disabling the discourse-policy plugin (policy_enabled = false) eliminates the vulnerability. There is no other workaround without upgrading.
Affected products
1- Range: < 2025.12.2
Patches
0No patches discovered yet.
Vulnerability mechanics
AI mechanics synthesis has not run for this CVE yet.
References
1- github.com/discourse/discourse/security/advisories/GHSA-jr4h-w6p5-w55rmitrex_refsource_CONFIRM
News mentions
0No linked articles in our index yet.