CVE-2023-48297

8.6 HIGH

📋 TL;DR

Discourse's message serializer mishandles expanded chat mentions (@all and @here), creating excessively large user arrays that can cause denial of service. This affects all Discourse instances running vulnerable versions, potentially disrupting community discussions.

💻 Affected Systems

Products:
  • Discourse
Versions: All versions before 3.1.4 and beta versions before 3.2.0.beta5
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: All standard Discourse installations with chat functionality enabled are vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete service unavailability due to resource exhaustion from processing massive user arrays, leading to extended downtime.

🟠

Likely Case

Performance degradation or temporary service interruptions when @all/@here mentions are used in large communities.

🟢

If Mitigated

Minimal impact with proper monitoring and resource limits, though potential for brief performance issues remains.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires authenticated user access to post messages with @all or @here mentions.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.1.4 or 3.2.0.beta5

Vendor Advisory: https://github.com/discourse/discourse/security/advisories/GHSA-hf2v-r5xm-8p37

Restart Required: Yes

Instructions:

1. Backup your Discourse instance. 2. Update to Discourse version 3.1.4 or later. 3. Restart the application server. 4. Verify the update completed successfully.

🔧 Temporary Workarounds

Disable @all and @here mentions

all

Temporarily disable the expanded mention functionality to prevent exploitation.

Edit site settings to disable @all and @here mentions in chat

🧯 If You Can't Patch

  • Implement rate limiting on chat message posting
  • Monitor system resources and set alerts for abnormal memory/CPU usage

🔍 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.1.4 or higher, or 3.2.0.beta5 or higher for beta installations.

📡 Detection & Monitoring

Log Indicators:

  • Unusually large memory consumption spikes
  • Application errors related to message serialization

Network Indicators:

  • Increased response times for chat endpoints
  • Timeout errors on message posting

SIEM Query:

source="discourse_logs" AND ("@all" OR "@here") AND memory_usage > threshold

🔗 References

📤 Share & Export