0
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2026-08-07 13:19:19 +08:00
discourse/plugins
Joffrey JAFFEUX 71f57d1d9a SECURITY: Harden chat DM channel creation and expansion [backport 2026.1]
Backport of #473 to release/2026.1.

---

Two issues fixed:

1. **Group visibility bypass** — the `target_groups` parameter was passed directly to the user resolution query without checking group or member visibility for the acting user. An authenticated chat user could craft an API request with a known private/hidden group name and receive a channel containing that group's members, leaking their identities. Fix: filter `target_groups` through `visible_groups` and `members_visible_groups` scopes before resolving users in both `CreateDirectMessageChannel` and `AddUsersToChannel` services.

2. **Chat-disabled user bypass** — `can_chat?` only checked group membership, not the `chat_enabled` user preference. A chat-disabled user could create or query DM channels between other users via the direct messages API, potentially exposing private `last_message` content. Fix: add `chat_enabled` check to `can_chat?` and add an actor inclusion guard in `fetch_target_users` so the service fails if the acting user gets filtered out of the resolved user set.

---

**Security Advisory:** https://github.com/discourse/discourse/security/advisories/GHSA-2m5j-6v2r-cq2h
2026-03-31 15:12:50 +01:00
..
automation I18N: Update translations (#37916) 2026-02-25 09:47:58 -05:00
chat SECURITY: Harden chat DM channel creation and expansion [backport 2026.1] 2026-03-31 15:12:50 +01:00
checklist DEV: upgrade to fontawesome 7 (#36286) 2026-01-14 12:58:36 +01:00
discourse-adplugin I18N: Update translations (#37916) 2026-02-25 09:47:58 -05:00
discourse-affiliate I18N: Update translations (#37916) 2026-02-25 09:47:58 -05:00
discourse-ai SECURITY: Force regeneration for edit-outdated summaries and block stale fallback [backport 2026.1] 2026-03-31 15:12:50 +01:00
discourse-apple-auth I18N: Update translations (#37916) 2026-02-25 09:47:58 -05:00
discourse-assign SECURITY: Stored XSS via unescaped assignee name [backport 2026.1] 2026-03-31 15:12:50 +01:00
discourse-cakeday I18N: Update translations (#37056) 2026-01-12 15:18:57 +01:00
discourse-calendar I18N: Update translations (#37916) 2026-02-25 09:47:58 -05:00
discourse-chat-integration I18N: Update translations (#37916) 2026-02-25 09:47:58 -05:00
discourse-data-explorer SECURITY: Check for no group assignments in data-explorer queries 2026-02-26 12:24:37 +00:00
discourse-details I18N: Update translations (#37916) 2026-02-25 09:47:58 -05:00
discourse-gamification I18N: Update translations (#37916) 2026-02-25 09:47:58 -05:00
discourse-github I18N: Update translations (#37916) 2026-02-25 09:47:58 -05:00
discourse-graphviz SECURITY: Sanitize graphviz SVG anchor links to prevent XSS 2026-03-19 15:46:24 +00:00
discourse-hcaptcha I18N: Update translations (#37916) 2026-02-25 09:47:58 -05:00
discourse-lazy-videos UX: add admin sidebar icons for preinstalled plugins (#36764) 2025-12-18 16:39:00 -05:00
discourse-local-dates I18N: Update translations (#37916) 2026-02-25 09:47:58 -05:00
discourse-login-with-amazon I18N: Update translations (#37916) 2026-02-25 09:47:58 -05:00
discourse-lti I18N: Update translations (#37101) 2026-01-14 09:39:58 +01:00
discourse-math I18N: Update translations (#37916) 2026-02-25 09:47:58 -05:00
discourse-microsoft-auth I18N: Update translations (#37056) 2026-01-12 15:18:57 +01:00
discourse-narrative-bot I18N: Update translations (#37916) 2026-02-25 09:47:58 -05:00
discourse-oauth2-basic I18N: Update translations (#37916) 2026-02-25 09:47:58 -05:00
discourse-openid-connect I18N: Update translations (#37916) 2026-02-25 09:47:58 -05:00
discourse-patreon SECURITY: authentication bypass vulnerability 2026-02-26 12:24:37 +00:00
discourse-policy SECURITY: Validate policy permissions on post save 2026-03-19 15:46:24 +00:00
discourse-post-voting I18N: Update translations (#37916) 2026-02-25 09:47:58 -05:00
discourse-presence I18N: Update translations (#37916) 2026-02-25 09:47:58 -05:00
discourse-reactions I18N: Update translations (#37916) 2026-02-25 09:47:58 -05:00
discourse-rewind I18N: Update translations (#37916) 2026-02-25 09:47:58 -05:00
discourse-rss-polling I18N: Update translations (#37916) 2026-02-25 09:47:58 -05:00
discourse-solved SECURITY: escape solved topic title in stream 2026-03-19 15:46:24 +00:00
discourse-subscriptions SECURITY: Fixes for discourse-subscriptions [backport 2026.1] 2026-03-31 15:12:50 +01:00
discourse-templates I18N: Update translations (#37916) 2026-02-25 09:47:58 -05:00
discourse-topic-voting I18N: Update translations (#37916) 2026-02-25 09:47:58 -05:00
discourse-user-notes SECURITY: Unauthorized Post Data Exposure in discourse-user-notes Plugin 2026-03-19 15:46:24 +00:00
discourse-zendesk-plugin SECURITY: Block ticket creation when user can't see the topic 2026-03-19 15:46:24 +00:00
footnote I18N: Update translations (#37916) 2026-02-25 09:47:58 -05:00
poll SECURITY: Check topic visibility before allowing poll interactions [backport 2026.1] 2026-03-31 15:12:50 +01:00
spoiler-alert I18N: Update translations (#37916) 2026-02-25 09:47:58 -05:00
styleguide I18N: Update translations (#37916) 2026-02-25 09:47:58 -05:00