Sceawere
Vulnerability Detail
CVE-2026-72724UPDATED Verified Sceawere Triage Sources: NVD / CISA KEV
Discourse Chat Onebox Authorization Bypass
Vulnerability Metadata
- Severity
- Medium
- Score / CVSS
- 4.3
- Creation Date
- 3h ago
- Vendor
- discourse
- Product
- discourse
- Attack Type
- CWE-639: Authorization Bypass Through User-Controlled Key
- Vector String
- CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
- Attack Complexity
- LOW
Narrative and Response
Description
Discourse is an open-source discussion platform. Prior to 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0, plugins/chat/lib/chat/onebox_handler.rb resolves Chat::Thread by route thread_id independently of the route channel_id before checking whether the user can preview the selected chat channel. An authenticated user can pair a public channel ID with a private thread ID in a /onebox.json request and obtain private thread message content. This issue is fixed in versions 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0.
Executive Summary
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Technical Details
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Mitigations
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
References
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Additional Metadata
{
"score": "4.3",
"pubDate": "2026-08-10T16:19:49.810Z",
"pubdate": "2026-08-10T16:19:49.810Z",
"executiveSummary": "An authorization bypass vulnerability exists in the chat plugin of Discourse prior to versions 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0. The vulnerability arises from improper access control validation during onebox processing, where a chat thread is resolved independently of its parent channel permissions.\nAn authenticated attacker with standard privileges can exploit this flaw by issuing a crafted /onebox.json request that pairs a public channel ID with a private thread ID. This forces the application to bypass standard preview restriction checks and disclose sensitive message content from private chat threads to unauthorized users.\nThe risk implication is a breach of confidentiality within the chat subsystem, allowing unauthorized extraction of private communications. Exploitation requires standard user authentication on the target Discourse instance and network access to the chat onebox endpoint.",
"technicalDetails": "The root cause of the vulnerability resides in the plugins/chat/lib/chat/onebox_handler.rb component within the Discourse chat plugin. When processing requests, the handler resolves the Chat::Thread entity using the route thread_id parameter independently of the corresponding route channel_id.\nCrucially, this lookup occurs before the application verifies whether the requesting user possesses the necessary privileges to preview or access the selected chat channel. Consequently, if an attacker supplies a mismatched parameter set—specifically, a public channel ID combined with a private thread ID—the underlying logic fails to enforce proper authorization boundaries.\nThe attack flow proceeds as follows: 1) The attacker identifies or possesses a valid user session on the target Discourse instance, satisfying the authentication requirement. 2) The attacker constructs an HTTP request targeting the /onebox.json endpoint. 3) Within the request parameters, the attacker supplies a public channel ID alongside the targeted private thread ID. 4) The vulnerable onebox_handler.rb script processes the thread resolution step without validating the user's access rights to the private context. 5) The application generates a onebox preview containing the private thread message content and returns it in the HTTP response, thereby completing the unauthorized data disclosure."
}