CVE-2026-23743

7.5 HIGH

📋 TL;DR

This vulnerability in Discourse allows attackers to obtain sensitive information about private resources through URL redirects. When users without proper permissions access permalinks to restricted content, the system leaks information via redirect headers and error pages. All Discourse instances running vulnerable versions are affected.

💻 Affected Systems

Products:
  • Discourse
Versions: All versions prior to 3.5.4, 2025.11.2, 2025.12.1, and 2026.1.0
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Affects all Discourse deployments with private content, categories, or hidden tags.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could map out all private discussions, categories, and hidden tags, potentially exposing confidential business information, private conversations, or sensitive organizational structures.

🟠

Likely Case

Information disclosure of private topic titles, category names, and hidden tag information, allowing attackers to infer sensitive organizational details or discussion topics.

🟢

If Mitigated

With proper access controls and monitoring, the impact is limited to information leakage rather than data modification or system compromise.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires access to permalinks but no authentication. Simple HTTP requests can trigger the vulnerability.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.5.4, 2025.11.2, 2025.12.1, or 2026.1.0

Vendor Advisory: https://github.com/discourse/discourse/security/advisories/GHSA-v5jw-rxc6-4cvv

Restart Required: Yes

Instructions:

1. Backup your Discourse instance. 2. Update to one of the patched versions using your deployment method (Docker, manual, etc.). 3. Restart the application. 4. Verify the update completed successfully.

🧯 If You Can't Patch

  • Implement strict network access controls to limit who can access the Discourse instance.
  • Monitor logs for unusual access patterns to permalink URLs and implement alerting.

🔍 How to Verify

Check if Vulnerable:

Check your Discourse version against the vulnerable versions. If running a version older than the patched versions, you are vulnerable.

Check Version:

docker exec -it discourse cat /home/discourse/discourse/VERSION (for Docker deployments) or check the admin dashboard version info.

Verify Fix Applied:

After updating, test that accessing permalinks to private resources returns proper access denied messages without leaking information in redirects or error pages.

📡 Detection & Monitoring

Log Indicators:

  • Multiple 404 responses to permalink URLs
  • Access to URLs containing private resource slugs from unauthorized users

Network Indicators:

  • HTTP 302 redirects to URLs containing private resource information
  • Unusual patterns of permalink access

SIEM Query:

source="discourse-logs" AND (status=404 OR status=302) AND uri CONTAINS "/t/" AND NOT user_agent="internal"

🔗 References

📤 Share & Export