Medium severity · published Mar 19, 2026
CVE-2026-33393
Discourse fixes loose hostname matching in spam host allowlist
4.3
CVSS
0.3%
EPSS
No
On KEV
Description
Discourse is an open-source discussion platform. Prior to versions 2026.3.0-latest.1, 2026.2.1, and 2026.1.2, the `allowed_spam_host_domains` check used `String#end_with?` without domain boundary validation, allowing domains like `attacker-example.com` to bypass spam protection when `example.com` was allowlisted. Versions 2026.3.0-latest.1, 2026.2.1, and 2026.1.2 require exact match or proper subdomain match (preceded by `.`) to prevent suffix-based bypass of `newuser_spam_host_threshold`. No known workarounds are available.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
Attack vector
Network
Complexity
Low
Privileges
Low
User interaction
None
Confidentiality
None
Integrity
Low
Availability
None
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.3% · higher than 18% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
DI
discourse · discourse
>= 2026.1.0-latest, < 2026.1.2; >= 2026.2.0-latest, < 2026.2.1; = 2026.3.0-latest · source: vendor, NVD
Affected product
DI
discourse
discourse
More from discourse
9.9
CVE-2025-68662
FinalDestination hostname matching allows SSRF protection bypass
9.8
CVE-2025-53102
Discourse's WebAuthn challenge isn't cleared from user session after authentication
9.8
CVE-2025-48877
Discourse vulnerable to auto-executing of third-party code in embedded CodePen iframe
9.8
CVE-2023-47121
Discourse is an open source platform for community discussion
9.8
CVE-2021-41163
Discourse is an open source platform for community discussion