CVE-2024-49765

5.3 MEDIUM

📋 TL;DR

Discourse sites using Discourse Connect (SSO) with local logins still enabled are vulnerable to authentication bypass. Attackers can create accounts and log in without proper SSO validation. This affects Discourse administrators who haven't updated to the patched version.

💻 Affected Systems

Products:
  • Discourse
Versions: All versions before the patch
Operating Systems: All
Default Config Vulnerable: ✅ No
Notes: Only affects Discourse instances with Discourse Connect enabled AND local logins still enabled. Default Discourse installations without Discourse Connect are not vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers create unauthorized administrator accounts, gaining full control over the Discourse instance to manipulate content, access private data, or disrupt community operations.

🟠

Likely Case

Attackers create regular user accounts to post spam, harass users, or access restricted community areas they shouldn't have permission to view.

🟢

If Mitigated

With proper controls, impact is limited to potential account creation attempts that fail due to disabled local logins or other authentication safeguards.

🌐 Internet-Facing: HIGH
🏢 Internal Only: LOW

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

The vulnerability is straightforward to exploit once an attacker discovers a vulnerable Discourse instance with both authentication methods enabled.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Latest version of Discourse

Vendor Advisory: https://github.com/discourse/discourse/security/advisories/GHSA-v8rf-pvgm-xxf2

Restart Required: Yes

Instructions:

1. Update Discourse to the latest version using your deployment method (Docker, manual, etc.). 2. Restart the Discourse application. 3. Verify local logins are disabled if using Discourse Connect.

🔧 Temporary Workarounds

Disable Local Logins

all

Disable all local login methods when using Discourse Connect to prevent authentication bypass.

Navigate to Admin > Settings > Login in Discourse admin panel, disable all non-Discourse Connect authentication methods

🧯 If You Can't Patch

  • Disable all local login methods in Discourse admin settings when using Discourse Connect
  • Implement network-level controls to restrict access to vulnerable instances

🔍 How to Verify

Check if Vulnerable:

Check if Discourse Connect is enabled AND any local login methods (email, username/password) are still enabled in Admin > Settings > Login

Check Version:

Check Discourse admin dashboard or run: docker exec -it discourse cat /shared/version

Verify Fix Applied:

Confirm Discourse is updated to latest version and verify local logins are disabled when Discourse Connect is enabled

📡 Detection & Monitoring

Log Indicators:

  • Unexpected account creation events
  • Login attempts using local authentication when Discourse Connect is configured
  • Failed SSO validation attempts followed by successful local login

Network Indicators:

  • Authentication requests to local login endpoints when SSO should be required

SIEM Query:

source="discourse" AND (event="account_created" OR event="user_logged_in") AND auth_method!="sso"

🔗 References

📤 Share & Export