CVE-2025-49845

7.5 HIGH

📋 TL;DR

Discourse users on vulnerable versions can continue to view their own 'whisper' posts even after being removed from groups with whisper permissions. This creates an information disclosure vulnerability where users retain access to sensitive content they should no longer see. Only affects Discourse installations with whisper functionality enabled.

💻 Affected Systems

Products:
  • Discourse
Versions: Stable branch: prior to 3.4.6; Tests-passed branch: prior to 3.5.0.beta8-dev
Operating Systems: All
Default Config Vulnerable: ✅ No
Notes: Only affects installations where whisper functionality is enabled via 'whispers_allowed_groups' setting.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Former privileged users maintain persistent access to sensitive whisper conversations containing confidential information, intellectual property, or private discussions.

🟠

Likely Case

Users who change roles or leave privileged groups can still access historical whisper posts they created or participated in, violating intended access controls.

🟢

If Mitigated

With proper group management and regular access reviews, impact is limited to historical data access rather than ongoing information leakage.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires authenticated user access and previous participation in whisper conversations.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Stable: 3.4.6; Tests-passed: 3.5.0.beta8-dev

Vendor Advisory: https://github.com/discourse/discourse/security/advisories/GHSA-79qw-r73r-69gf

Restart Required: Yes

Instructions:

1. Backup your Discourse installation and database. 2. Update to Discourse 3.4.6 (stable) or 3.5.0.beta8-dev (tests-passed). 3. Restart the Discourse application. 4. Verify the update completed successfully.

🔧 Temporary Workarounds

Disable whisper functionality

all

Remove all groups from 'whispers_allowed_groups' site setting to disable whisper posts entirely

UPDATE site_settings SET value = '' WHERE name = 'whispers_allowed_groups';

🧯 If You Can't Patch

  • Implement strict group membership reviews and immediately remove users from whisper groups when access is no longer needed
  • Monitor user activity logs for unusual access patterns to whisper posts by users not in allowed groups

🔍 How to Verify

Check if Vulnerable:

Check Discourse version via admin panel or run: `cd /var/discourse && ./launcher status app`

Check Version:

cd /var/discourse && cat containers/app.yml | grep DISCOURSE_VERSION

Verify Fix Applied:

Confirm version is 3.4.6 or higher (stable) or 3.5.0.beta8-dev or higher (tests-passed)

📡 Detection & Monitoring

Log Indicators:

  • Users accessing whisper posts after group membership changes
  • Access logs showing whisper post views by users not in whispers_allowed_groups

Network Indicators:

  • API calls to whisper endpoints by unauthorized users

SIEM Query:

source="discourse_logs" AND (event="view_post" AND post_type="whisper") | join user_id NOT IN (SELECT user_id FROM group_users WHERE group_id IN (whispers_allowed_groups))

🔗 References

📤 Share & Export