
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-33393 is an improper access control vulnerability in Discourse, an open-source discussion platform, affecting the spam host allowlist domain validation logic. The flaw exists in versions 2026.1.0–2026.1.1, 2026.2.0, and 2026.3.0-latest (pre-patch), where the allowed_spam_host_domains check used Ruby's String#end_with? without proper domain boundary validation. This allows a low-privileged authenticated user to bypass spam protection by registering a domain that merely ends with an allowlisted domain string (e.g., attacker-example.com bypasses an allowlist entry for example.com). It was disclosed on March 19, 2026, with patches released shortly after, and carries a CVSS v3.1 base score of 4.3 (Medium) (GitHub Advisory).
The root cause is classified as CWE-284 (Improper Access Control), stemming from the use of Ruby's String#end_with? method in app/models/post.rb to validate whether a linked hostname falls within the allowed_spam_host_domains allowlist. Because end_with? performs a simple string suffix check without enforcing domain boundary semantics, a domain like attacker-example.com satisfies the check for an allowlisted example.com. The fix replaces the vulnerable check with a strict comparison requiring either an exact match (h == w) or a proper subdomain match (h.end_with?(".#{w}")), ensuring the dot boundary is enforced (GitHub Advisory, Patch Commit). Exploitation requires a low-privileged (new user, trust level 0) account and network access to the Discourse instance.
Successful exploitation allows a low-privileged authenticated attacker to bypass the newuser_spam_host_threshold spam protection mechanism by posting links to lookalike domains that suffix-match an allowlisted domain. This results in a low-integrity impact: spam or malicious links from attacker-controlled domains may reach other users without being filtered, potentially facilitating phishing or malware distribution through the platform. There is no confidentiality or availability impact, and the vulnerability does not enable lateral movement or privilege escalation (GitHub Advisory).
No public proof-of-concept exploit code is known to exist, and there is no evidence of in-the-wild exploitation at this time (Feedly). The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. The EPSS score is approximately 0.026% (0.000260), indicating a very low probability of exploitation in the near term. Exploitation requires a low-privileged authenticated account, further limiting the attack surface.
allowed_spam_host_domains site setting (this may be inferred from community context or admin-disclosed settings).attacker-example.com when example.com is allowlisted).http://attacker-example.com/malicious-page).String#end_with? check incorrectly treats attacker-example.com as matching the allowlisted example.com, the post is not flagged by the newuser_spam_host_threshold filter, allowing the spam or malicious content to be published (GitHub Advisory, Patch Commit).allowed_spam_host_domains (e.g., attacker-example.com when example.com is allowlisted).newuser_spam_host_threshold without triggering spam flags, particularly from accounts with no established trust level.allowed_spam_host_domains site setting combined with post content analysis for domains matching the suffix pattern but lacking a preceding dot boundary.Discourse has released patches in versions 2026.3.0-latest.1, 2026.2.1, and 2026.1.2, which enforce strict domain boundary validation (exact match or proper subdomain match preceded by .). Administrators should upgrade to one of these patched versions immediately. No configuration-based workarounds are available for unpatched versions; upgrading is the only remediation (GitHub Advisory).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."