Discourse
Monthly
Missing actor-identity and object-ownership checks in the Discourse ActivityPub plugin allow remote attackers to edit, delete, or reply to federated posts without the permissions those actions normally require. Because inbound ActivityPub processing trusts the Activity actor declared inside the payload rather than the actor authenticated by the request's HTTP signature, anyone who can produce a valid HTTP signature for any federated actor can operate on posts that actor does not own; the assessed vector (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N) confirms no account on the target Discourse instance is needed, with the impact being unauthorized modification rather than data exposure. No public exploit code has been identified at time of analysis and the issue is not confirmed as actively exploited (not in CISA KEV), though the fixing commit is publicly visible and the affected CPE entry spans all plugin versions prior to that commit. Exposure is limited to Discourse instances that have installed and enabled the ActivityPub federation plugin, since stock Discourse does not ship it.
Discourse forums with the non-default 'secure uploads' feature enabled could keep serving media and attachments to anonymous visitors after the owning category was made read-restricted, because per-upload security metadata was never reconciled when a category's read_restricted flag flipped or when category permissions changed during a bulk import. Only uploads that were posted while the category was still public are exposed - including uploads attached to topics that were later deleted - and they remain reachable through their short upload URLs, which an attacker must know or enumerate; the vendor's reported CVSS 3.1 base of 7.5 reflects network, unauthenticated, no-interaction access, although our assessment raises complexity to High (AC:H) because both a specific non-default configuration and a triggering permission event are required. The issue is fixed in 2026.9.0, 2026.8.1, 2026.7.3 and 2026.1.9, and no public exploit was identified at time of analysis.
Authenticated users on Discourse sites running the bundled Chat plugin can receive live and recent private-category channel messages they are not entitled to see, because the MessageBus publication audience for a read-restricted category channel is bounded by category visibility alone and never verifies Chat eligibility under the site's group restrictions (CWE-862 missing authorization). Only sites where chat is enabled, a chat channel is attached to a read-restricted category, and chat_allowed_groups are configured such that a user may view the category while being excluded from Chat are affected; exploitation requires a valid authenticated account with category-view access, which the assessed vector reflects (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N). Disclosure is confined to messages flowing through the MessageBus stream and its short backlog - the Chat API does not expose full channel history, and no message creation or modification is possible - making this a moderate confidentiality-only issue with no public exploit identified at time of analysis.
Stored visual overlay injection in Discourse before 2026.9.0, 2026.8.1, 2026.7.3, and 2026.1.9 allows an authenticated user with posting permission to embed misleading or fraudulent UI content in posts by controlling a fetched webpage and its oEmbed response alongside an allowlisted iframe. The authoritative assessment rates this as limited integrity impact (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:L/A:N) rather than the vendor/GHSA 7.7 high score, because exploitation requires a posting account, external attacker-controlled infrastructure, and an iframe source matching the site's configured allowlist; it does not expose restricted data, affect availability, or bypass Discourse CSP. No public exploit was identified at time of analysis, and vendor patches are available in 2026.9.0, 2026.8.1, 2026.7.3, and 2026.1.9.
Stored cross-site scripting in Discourse's video-placeholder component lets an authenticated user with default trust-level posting privileges embed a crafted video URL in a post that breaks out of the placeholder's data-video-src attribute and injects an attacker-controlled event handler, which fires when another user opens the post and clicks the video play overlay. Exploitation is gated by three independent conditions - a valid posting account (CVSS PR:L, so authenticated), the target instance running with its Content Security Policy disabled or relaxed (the default CSP blocks inline event handlers and defeats the attack), and specific victim interaction (UI:R) - so realistic risk is materially lower than the 8.7 base score implies; our assessment rates it AC:H with only low confidentiality and integrity impact. No public exploit code and no confirmed active exploitation (no CISA KEV listing) were identified at time of analysis, and the vendor has released fixed versions 2026.1.8, 2026.6.3, 2026.7.2 and 2026.8.0.
An authenticated Discourse user who can post content can bypass the administrator's `allowed_iframes` subpath restriction and embed iframe content from a path the administrator never authorized, affecting all Discourse releases prior to 2026.1.8, 2026.6.3, 2026.7.2, and 2026.8.0. The allowlist guard did not treat literal backslashes as path separators after decoding percent-encoded dot segments, so a crafted iframe source passed the subpath check while browser URL normalization resolved the frame outside the permitted path; exploitation requires a victim to view the post and depends on the viewer browser's backslash normalization behavior, consistent with the assessed vector AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N (limited confidentiality and integrity impact, no availability impact, scope change). This is a moderate, non-priority finding - no public exploit identified at time of analysis.
SQL injection in Discourse's Data Explorer plugin exposes the entire database to unauthorized reads by any user who can execute a shared parameterized query, including non-staff group members. The flaw stems from recursive parameter interpolation: a crafted parameter value could introduce additional parameters, and SQL comment syntax could be used to inject arbitrary statements. Queries execute in a read-only PostgreSQL transaction, so writes are blocked, but every database table - including private messages, user emails, hashed credentials, and API keys - is readable. No public exploit code has been identified at time of analysis, and no CISA KEV listing exists.
Stored cross-site scripting in Discourse's Chat plugin allows an authenticated user to inject arbitrary HTML and JavaScript into any viewer's browser session by embedding a malicious payload in the username field of a chat-transcript quote block. The Rich Text Editor rendered the username attribute via `innerHTML` without sanitization, meaning any authenticated Discourse member with chat access could craft a quote block that executes attacker-controlled script when a victim - potentially a moderator or administrator - views the transcript. Patch versions 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0 are confirmed released; no public exploit code or active exploitation (CISA KEV) has been identified at time of analysis.
Stored cross-site scripting in Discourse (before 2026.6.0, 2026.5.1, 2026.4.2, and 2026.1.5) lets a user with permission to set a topic "featured link" inject JavaScript that executes when the link is rendered in the topic list. Exploitation only succeeds where the platform's default Content Security Policy has been weakened or disabled, so out-of-the-box installs are protected in depth. No public exploit identified at time of analysis, and the issue is not in CISA KEV; official fixed releases are available.
Stored cross-site scripting in the Discourse discussion platform allows a low-privileged registered user to set a malicious two-factor authenticator name that executes JavaScript in an administrator's browser when that admin impersonates the account and opens the 2FA delete confirmation dialog. Affected builds are Discourse before 2026.6.0, 2026.5.1, 2026.4.2, and 2026.1.5, spanning the 2026.1.x through 2026.6.x release lines. There is no public exploit identified at time of analysis and the EPSS probability is low (0.39%), but the fix commit's regression test reveals the exact working payload, and successful exploitation runs in a full-admin context.
Privilege escalation in Discourse (the open-source discussion platform) lets a newly registered user obtain whisper-group ('whisperer') privileges by supplying a primary_group_id during the signup flow, without ever being a legitimate member of that group. Exploitation only matters on sites that have configured whispers_allowed_groups, and success grants read access to staff-only whisper posts (a confidentiality-focused impact). EPSS is low (0.31%, 23rd percentile) and there is no public exploit identified at time of analysis, but the fix commits and GitHub advisory GHSA-vmwq-jvxx-jwfx confirm the flaw and its remediation.
Remote code execution in Discourse (via the discourse-ai plugin's PDF-to-text feature) allows an attacker who can upload a crafted PDF to run arbitrary commands on the server, but only in non-default configurations where an LLM vision model is configured. The flaw is a CWE-78 OS command injection reached when uploaded PDFs are rasterized through ImageMagick, which in turn invokes an external delegate (Ghostscript) on attacker-controlled input. It is not in CISA KEV and has no public exploit identified at time of analysis; EPSS is low at 0.33% (25th percentile), and vendor patches exist across all supported release lines.
Information disclosure in Discourse discussion platform allows any MessageBus subscriber to receive real-time chat message payloads from public category channels without proper permission scoping, even when chat is not enabled for that user. The flaw affects versions 2026.1.0 through 2026.1.3, 2026.3.0 through 2026.3.0, and 2026.4.0 through 2026.4.0, and is fixed in 2026.1.4, 2026.3.1, 2026.4.1, and 2026.5.0-latest.1. No public exploit identified at time of analysis, but the unauthenticated network attack vector makes this a meaningful confidentiality concern for forums leveraging chat.
Discourse versions prior to 2026.3.0-latest.1, 2026.2.1, and 2026.1.2 contain an authorization page spoofing vulnerability that allows unauthenticated attackers to inject attacker-controlled domains into legitimate Discourse authorization pages, enabling social engineering attacks. This CWE-862 (Missing Authorization) class vulnerability affects all affected Discourse installations and requires no authentication or special privileges to exploit. No active exploitation in the wild (KEV status) has been reported, but the attack surface is broad given Discourse's widespread use as an open-source discussion platform.
A remote code execution vulnerability in Discourse (CVSS 7.5). High severity vulnerability requiring prompt remediation.
Unauthorized information disclosure in Discourse discussion platform versions prior to 2026.3.0-latest.1, 2026.2.1, and 2026.1.2 allows unauthenticated attackers to view restricted post titles and excerpts through inadequate permission validation on user action API endpoints. The vulnerability affects all deployments running vulnerable versions, with no available workarounds until patching to the fixed releases.
Discourse versions prior to 2025.12.2, 2026.1.1, and 2026.2.0 contain an insecure direct object reference (IDOR) in the directory items endpoint that allows unauthenticated attackers to retrieve private user field values for all directory users. The vulnerability stems from missing authorization checks on the user_field_ids parameter, enabling bulk exfiltration of sensitive user data that should be restricted by visibility settings. No patch is currently available for affected deployments.
Discourse instances with an unconfigured patreon_webhook_secret allow remote attackers to forge valid webhook signatures using an empty HMAC-MD5 key, enabling arbitrary creation, modification, or deletion of Patreon pledge data and unauthorized patron synchronization. The vulnerability affects Discourse versions prior to 2025.12.2, 2026.1.1, and 2026.2.0, and currently lacks an available patch. Administrators must explicitly configure the patreon_webhook_secret setting or upgrade to patched versions to mitigate this integrity attack.
Discourse is an open source discussion platform. [CVSS 7.5 HIGH]
Topic-title disclosure in the Discourse Doc Categories plugin lets an authenticated user who holds edit rights on a documentation index topic learn the titles of private messages and topics in read-restricted categories that the user is not authorized to view. The index refresh routine resolves linked topic titles without enforcing viewer authorization, so the leaked titles appear in the generated index structure even though the underlying topic contents remain inaccessible. Rated CVSS 4.3 (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N) with no public exploit identified at time of analysis and no confirmed active exploitation; the issue is largely confined to non-default Discourse instances that have this plugin installed and actively used, and the fix is a targeted authorization filter in the upstream commit b15d4de02ad29d7c9525346afee51fef4a2c605a.
Stored HTML injection in Discourse's topic small-action and nested-activity-log components lets an authenticated user with a crafted display name break out of the mention-link href attribute and inject arbitrary markup into the trusted page for anyone who later views the affected topic action or activity log. Attackers need only an account and a quote-bearing name (or any attacker-influenced action_code_who value); the victim requires no interaction beyond loading the topic, and the payload persists in stored topic history. The issue is limited to Unicode-encoded href paths in versions before 2026.1.8, 2026.6.3, 2026.7.2 and 2026.8.0, and no public exploit code or confirmed active exploitation was identified at time of analysis; Discourse's default Content-Security-Policy means full script execution is realistic mainly on instances that weaken or disable CSP, so the practical impact is moderate rather than critical.
Trusted-HTML injection in Discourse chat excerpt renderers lets an authenticated user who can both upload files and post chat content embed HTML markup in a filename, which is then rendered unescaped in chat channel lists, chat summary emails, pinned message bars, reply previews, thread previews and other excerpt surfaces. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:L/A:N, score 5.0) confirms the attacker must be authenticated and that only content integrity is affected, with scope change reflecting that the injected markup renders in contexts beyond the uploader's own message; no public exploit code has been identified at time of analysis and JavaScript execution was not demonstrated under the default Content Security Policy. The practical risk is low and is driven almost entirely by sites that have disabled or relaxed the default CSP, which the advisory notes have increased exposure to script-level attacks. Fixed versions are 2026.1.8, 2026.6.3, 2026.7.2 and 2026.8.0.
Stored cross-site scripting in Discourse's notification email and chat-summary rendering paths allows an authenticated user with standard posting privileges to inject markup into messages generated for other users. In versions prior to 2026.1.8, 2026.6.3, 2026.7.2, and 2026.8.0, a post referencing a video from an enabled provider (YouTube, Vimeo, or TikTok) whose provider-side title contains markup is reparsed as HTML when the notification email or chat summary is built, so recipients reading those messages in an HTML-capable email client may render injected content, potentially including event handlers; impact is confined to the email/chat rendering context and does not reach the Discourse browser session or the forum page itself. Lazy video embeds must be enabled (the default configuration) for exploitation, authentication requirements are confirmed as low-privileged (CVSS vector PR:L), no public exploit code has been identified at time of analysis, and this is assessed as a genuine but low-priority issue.
Rendering of attacker-controlled iframes in Discourse is possible on sites that configure wildcard patterns in the allowed_iframes setting, allowing an authenticated user with posting privileges to embed an iframe whose origin is not actually allowlisted. The flaw is a bypass of the wildcard origin check: a crafted URL places the allowlisted suffix after a URL authority separator, so Discourse's text-based match succeeds while the browser resolves a different, attacker-controlled origin, and the iframe is then rendered through a post or a Onebox oEmbed response. Rated CVSS 4.3 (CWE-346, origin validation error) with only a low integrity impact and no confidentiality or availability impact; exploitation requires both a wildcard iframe configuration and posting privileges (PR:L), and no public exploit was identified at time of analysis.
Authenticated users on Discourse forums running versions prior to 2026.1.8, 2026.6.3, 2026.7.2, or 2026.8.0 can read upload metadata they are not authorized to see - including original filenames and secure-upload paths - by submitting unescaped SQL LIKE wildcard characters where the application expects a literal upload identifier. The flaw (CWE-943) causes upload-metadata lookups, URL lookups, and cooked-video-placeholder resolution to match unrelated upload records instead of the intended one, leaking restricted information without modifying any records. Exploitation requires an authenticated account (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N) and works against default configurations, so instances that allow self-registration or host many low-trust members carry the most exposure; there is no public exploit identified at time of analysis and no confirmed active exploitation (CISA KEV not applicable). Vendor-released patches exist in 2026.1.8, 2026.6.3, 2026.7.2, and 2026.8.0.
Stored cross-origin iframe injection in Discourse allows an authenticated user with posting privileges to bypass the allowed_iframes prefix policy by embedding an iframe whose src contains encoded userinfo, so the sanitizer's decoded validation passes while the browser resolves an attacker-controlled host. Affected releases are those prior to 2026.1.8, 2026.6.3, 2026.7.2, and 2026.8.0; the assessed CVSS 3.1 vector is AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N (5.4), reflecting limited confidentiality and integrity impact and no availability loss. Exploitation requires a valid posting account and a site where at least one iframe host prefix is permitted, and there is no public exploit identified at time of analysis; the risk is genuine but moderate rather than an emergency.
Discourse's moderator review queue can expose the contents of private messages to moderators who are not participants in those conversations, because reviewables generated by the optional Discourse AI plugin were not filtered to the audience permitted to access the underlying private-message topic. Affected deployments are those running releases prior to 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0 with the Discourse AI feature producing reviewables; exploitation requires an authenticated moderator account, the AI plugin, and a pre-existing AI reviewable tied to a PM the moderator is not a participant in, so an attacker cannot reliably force the required state. Confidentiality impact is high (and a moderator may additionally close the PM topic or delete a post if the relevant reviewable actions are available), but real-world risk is low-to-moderate given the high privilege required, the dependence on optional functionality, and the opportunistic precondition; no public exploit identified at time of analysis.
Stored cross-site scripting in Discourse before 2026.7.0 allows an authenticated user who can set a custom display name to persist markup that is later rendered in post action descriptions, so that any other user browsing the affected activity streams runs attacker-controlled script in their browser. The vendor scores it 5.4 (Medium) with the vector CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N, reflecting an authenticated attacker (PR:L) and a required victim interaction (UI:R), with scope change because the script executes in other users' sessions against the Discourse origin. The vendor-released fix is version 2026.7.0; there is no public exploit code identified at time of analysis and no CISA KEV listing.
Tag name information disclosure in Discourse's discourse-templates plugin exposes hidden tag names to any authenticated user via the /discourse_templates endpoint. The TemplatesSerializer in the plugin bypassed Discourse's Guardian authorization layer when serializing topic tags, causing tags belonging to restricted tag groups - such as staff-only labels - to appear in API responses regardless of the requesting user's permissions. Vendor-released patches are available across four version branches; no public exploit code or active exploitation has been identified.
Cross-site scripting in Discourse's discourse-local-dates plugin allows an authenticated attacker to inject arbitrary HTML by embedding crafted markup in local-date format attributes (data-format, data-displayed-timezone, data-timezone), which were interpolated directly into the DOM via template literals instead of safe DOM text APIs. Exploitation is gated by a non-default condition: the site's Content Security Policy must be modified or disabled from the default. No public exploit independent of the vendor fix commits exists at time of analysis, and this is not listed in CISA KEV. The CVSS 4.0 score of 2.0 reflects the constrained attack requirements (AT:P, PR:L, UI:A).
Onebox allowlist bypass in Discourse (all versions prior to 2026.1.7) enables authenticated forum users to embed malicious iframes and attacker-controlled content in posts by exploiting a regex prefix-matching flaw in the `origins_to_regexes` method. The core defect - missing URL boundary anchors and an overly permissive wildcard expansion - allows domains like `youtube.com.attacker.example` to pass validation as the allowlisted `youtube.com`. No public exploit has been identified at time of analysis and the vulnerability is absent from the CISA KEV catalog; vendor-released patches exist as versions 2026.1.7, 2026.6.2, 2026.7.1, and 2026.8.0-latest.1.
Stored cross-site scripting in Discourse's moderation review queue allows a low-privileged registered user to execute arbitrary JavaScript in a moderator's browser session. All Discourse deployments running versions prior to 2026.1.6, 2026.5.2, 2026.6.1, or 2026.7.0 are affected, but only when the platform's default Content Security Policy has been modified or disabled. No public exploit identified at time of analysis and no CISA KEV listing; real-world risk is bounded by both the CSP prerequisite and the requirement for moderator interaction.
Private AI bot conversation content leaks to unauthorized authenticated users in Discourse via an improperly scoped MessageBus reply stream in the discourse-ai plugin. Authenticated members of any Discourse instance running the discourse-ai plugin prior to versions 2026.1.6, 2026.5.2, 2026.6.1, or 2026.7.0 can intercept real-time streaming content of private message conversations between other users and the AI bot. No public exploit code has been identified at time of analysis, and the CVE is not listed in the CISA KEV catalog, but the low attack complexity and straightforward exploitation path represent a meaningful confidentiality risk for any deployment actively using AI bot private message features.
Stored XSS in Discourse's staff action log interface allows authenticated users to inject malicious HTML into log entries that execute in administrator browser sessions. All Discourse releases prior to 2026.1.6 are affected, with the root cause being an unescaped rendering of previous_value and new_value fields in the admin frontend model. No active exploitation or public exploit code has been identified at time of analysis; vendor-released patches across four stable branches confirm the issue is fully remediated.
Discourse's Chat plugin exposes private thread message content to authenticated users who lack access to the private channel. The onebox handler in plugins/chat/lib/chat/onebox_handler.rb resolves Chat::Thread using the route's thread_id before verifying whether the requesting user can access the associated channel_id, allowing a mismatched public-channel/private-thread pair to be submitted via /onebox.json. This is confirmed fixed in versions 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0; no public exploit or CISA KEV listing has been identified at time of analysis.
Unauthorized tag enumeration in Discourse exposes restricted tag names and descriptions to unauthenticated users via the /site.json endpoint. The flaw exists in all Discourse releases prior to 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0, where the anonymous site serializer populates default navigation menu tags from SiteSettings without invoking the DiscourseTagging.filter_visible visibility guard. Attackers can trivially enumerate tag names and descriptions that administrators have restricted to specific categories, category tag groups, or tag-group permission rules, undermining Discourse's information compartmentalization model. No public exploit code or active exploitation has been identified at time of analysis.
TopicLink authorization bypass in Discourse exposes restricted content metadata to authenticated users who lack permission to view those resources. All Discourse versions prior to 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0 are affected. An authenticated user can craft internal links to private messages, restricted topics, or hidden posts and recover their canonicalized slugs or titles via the composer_messages duplicate_lookup API endpoint, even though those resources are not visible to them. No public exploit code or active exploitation has been identified at time of analysis.
Onebox domain blocklist bypass in Discourse allows forum users to circumvent administrator-configured content restrictions by exploiting case-sensitive hostname comparison in `Onebox::DomainChecker.is_blocked?`. Versions prior to 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0 are affected across all maintained release branches. An attacker with a forum account can post a link whose redirect target hostname uses mixed casing (e.g., `BLOCKED-Domain.Com`) to evade blocklist enforcement and cause Discourse to render a rich link preview of content the administrator intended to restrict. No public exploit has been identified and the vulnerability is absent from CISA KEV.
HTML injection in Discourse's PrettyText.format_for_email function allows authenticated users to embed arbitrary markup into outbound email notifications across all versions prior to 2026.1.7, 2026.6.2, 2026.7.1, and 2026.8.0-latest.1. Three distinct code paths in the email conversion pipeline re-inject cooked HTML attribute values as raw markup strings rather than treating them as data - exploitable via crafted Vimeo iframe sources, secure-upload URLs or dimension attributes, and hashtag data-slug values. No public exploit code or CISA KEV listing is identified at time of analysis; the CVSS 3.1 score of 6.4 reflects a meaningful scope change to email recipients' clients combined with the low-privilege authentication requirement.
Discourse's post revision system exposes hidden edit history to unauthenticated network users through a serialization flaw in PostRevisionSerializer. When computing diffs between adjacent visible revisions, the serializer failed to enforce visibility restrictions, leaking content from revisions that moderators or administrators had marked as hidden. No active exploitation has been identified at time of analysis, but the unauthenticated, low-complexity attack vector means any visitor to a vulnerable Discourse instance can potentially access suppressed post content - including moderator-redacted material - without any credentials or special access.
Stored cross-site scripting in Discourse's SVG upload and user avatar handling allows authenticated users to inject malicious JavaScript that executes in victims' browsers when they visit specific non-standard URLs. The CVSS scope change (S:C) reflects that successful exploitation crosses the browser security boundary, enabling session token theft or account takeover against victims who visit the triggering URL. Vendor-confirmed patches are available across four release branches; no public exploit code or CISA KEV listing has been identified at time of analysis.
Discourse's AWS SES bounce webhook endpoint (POST /webhooks/aws) validates Amazon SNS message signatures but omits TopicArn binding, allowing any AWS account holder to publish legitimately signed forged Bounce notifications that revoke a targeted Discourse user's email address. Versions prior to 2026.6.0, 2026.5.1, 2026.4.2, and 2026.1.5 across all active release branches are affected when the SES integration is enabled. No public exploit code exists and the vulnerability is not listed in CISA KEV, but the low attack complexity and absence of Discourse-side authentication requirements make targeted abuse realistic for any motivated actor with an AWS account.
Restricted tag and tag-group name disclosure in Discourse exposes internal taxonomy metadata to anonymous and unauthorized users via the category and group API endpoints. All Discourse versions prior to 2026.6.0, 2026.5.1, 2026.4.2, and 2026.1.5 are affected when restricted tags or tag groups are configured on publicly readable categories. An unauthenticated actor can enumerate these names - which may contain sensitive organizational labels, project codenames, or internal classifications - using standard HTTP requests with no exploit tooling required. No public exploit code exists and this is not listed in CISA KEV; the CVSS 4.0 AT:P modifier confirms that exploitation requires a specific non-default configuration to be present.
Unauthorized write access to the admin backup store in Discourse allows any authenticated regular user to route S3 multipart uploads into a storage area that should be restricted to administrators. The flaw exists in ExternalUploadManager, which fails to enforce authorization checks (CWE-862) when accepting direct S3 multipart upload requests, meaning a low-privilege account holder can target the admin backup destination path without restriction. No active exploitation has been confirmed by CISA KEV, and no public exploit code has been identified at time of analysis, but the low attack complexity and network accessibility make this a credible threat on any Discourse deployment using S3 direct uploads.
Secure upload bypass in Discourse exposes protected files through the pull_hotlinked_images feature, which fails to enforce the secure_uploads access control when processing posts containing a known secure URL. Affected instances are those running versions prior to 2026.6.0, 2026.5.1, 2026.4.2, or 2026.1.5 with the secure_uploads site setting enabled. No public exploit has been identified at time of analysis and this vulnerability is not listed in CISA KEV; however, the fix commits are publicly visible on GitHub, potentially aiding reverse-engineering of the flaw.
EventSerializer in Discourse improperly exposes private event invitation metadata - including invited group names, sample invitee usernames, and attendance statistics - to any user who can view the topic, regardless of their authorization to access the private invitee list. All Discourse installations prior to versions 2026.6.0, 2026.5.1, 2026.4.2, and 2026.1.5 are affected when event functionality is in use. No public exploit or active exploitation (CISA KEV) has been identified, but the trivial network vector (AV:N/AC:L/PR:N/UI:N) makes this passively accessible to any user - authenticated or not - with topic-read access on an open or semi-open forum.
Tag group name disclosure in Discourse exposes restricted organizational metadata to anonymous and unprivileged users via a serializer that omits visibility filtering. Affected release lines are 2026.1.x (before 2026.1.4), 2026.3.x (before 2026.3.1), and 2026.4.x (before 2026.4.1), with the root cause being that DetailedTagSerializer#tag_group_names returned all group memberships without consulting the requesting user's permissions. An unauthenticated attacker can enumerate the names of tag groups restricted to specific user groups or non-visible categories, potentially leaking the internal structure of private forum spaces; no public exploit code has been identified at time of analysis and EPSS is 0.04% (11th percentile), indicating negligible observed exploitation activity.
Unauthorized access to webhook event data in Discourse exposes internal webhook payloads to any authenticated user - or unauthenticated users on instances with login_required disabled - across versions 2026.1.0 through several branch heads. The flaw resides in the MessageBus channel /web_hook_events/<id>, which the Jobs::RedeliverWebHookEvents job publishes to without enforcing group_id restrictions, allowing unrestricted channel subscription. Compounded by trivially enumerable sequential integer webhook IDs, any low-privilege or anonymous actor can iterate over webhook event history without authorization. No public exploit code exists and EPSS is 0.03% (9th percentile), indicating no observed widespread exploitation at time of analysis.
Path traversal in Discourse's backup download handler allows an authenticated administrator on one site within a multisite deployment to retrieve backup archives belonging to a co-hosted site on the same server. Backup files typically contain full database dumps, private messages, user credentials, and email addresses, making cross-site access a serious trust-boundary violation. No public exploit has been identified and EPSS sits at 0.04% (12th percentile), reflecting the narrow exploitation conditions; vendor-released patches are available across all affected release trains.
Discourse chat plugin across versions 2026.1.0-2026.4.x contains four authorization deficiencies (CWE-862) enabling both information disclosure and unauthorized write actions: calendar event API payloads expose the associated chat channel's last message - potentially a private DM - to unauthenticated users, while separate flaws allow read-only users to create chat threads, authors to restore their own deleted messages after losing channel access, and moderators reviewing flagged messages to inadvertently view unrelated DM content. Vendor-released patches exist for all supported branches; no public exploit identified at time of analysis and EPSS is 0.04% (11th percentile), but the unauthenticated DM disclosure warrants prompt patching on public-facing instances.
Discourse's AI 'explain' helper exposes raw content of hidden posts to any authenticated user with access to the feature, due to an incomplete authorization check on parent posts. Affected instances span three release tracks - 2026.1.x, 2026.3.x, and 2026.4.x - and any user who can invoke the AI helper and find a visible reply to a hidden post can silently read the hidden post's raw text. No public exploit code has been identified and EPSS places exploitation probability at 0.03% (9th percentile), indicating this is a low-urgency but genuine confidentiality bypass for deployments where hidden post content is sensitive.
Discourse group owners can retrieve plaintext SMTP credentials - including passwords, usernames, server, port, and SSL mode - from the group history log endpoint (/groups/:name/logs.json), affecting versions 2026.1.0-latest through pre-2026.1.4, 2026.3.0-latest through pre-2026.3.1, and 2026.4.0-latest through pre-2026.4.1. An authenticated group owner who holds no admin or moderator privileges can harvest the exposed SMTP password and use it to send mail impersonating the group's email identity from any external mail client, entirely bypassing Discourse's own sending controls. No public exploit code exists and this vulnerability is not listed in CISA KEV; the EPSS score of 0.03% at the 11th percentile reflects the narrow, configuration-dependent attack surface.
Whisper channel access control in Discourse can be bypassed by any authenticated forum user, allowing injection of content into staff-only whisper threads visible to moderators and staff. Affected release trains span 2026.1.0-latest through pre-2026.1.4, 2026.3.0-latest through pre-2026.3.1, and 2026.4.0-latest through pre-2026.4.1, with all fixes confirmed by the vendor in the GitHub Security Advisory. An attacker holding only a standard forum account can exploit the reply mechanism to post messages that surface inside privileged staff whisper channels, potentially poisoning internal moderation communications or probing staff responses for sensitive operational detail. No public exploit is identified at time of analysis, and EPSS places exploitation probability at the 9th percentile.
Discourse's GroupPostSerializer leaks user real names to authenticated users even when site administrators have explicitly disabled name display via the enable_names site setting. Affected versions span the 2026.1.x, 2026.3.x, and 2026.4.x release lines. An authenticated user querying group post endpoints receives real name data that the platform operator intended to suppress, undermining privacy configurations on Discourse instances that host pseudonymous or anonymous communities. No public exploit code exists and no active exploitation has been identified; the EPSS score of 0.03% (9th percentile) reflects low exploitation probability.
Discourse's ReviewableQueuedPostSerializer unconditionally exposes full inbound email source - including SMTP headers, sender trace, mail user agent, and body - to category moderation group members accessing the review queue, bypassing the view_raw_email_allowed_groups trust boundary that restricts the dedicated raw-email endpoint. Affected versions span the 2026.1.x, 2026.3.x, and 2026.4.x series on deployments using Discourse's incoming email feature. No public exploit has been identified and EPSS stands at 0.03% (9th percentile), indicating low automated exploitation probability, though the exposed data - including sender IP addresses and routing headers - presents meaningful privacy and de-anonymization risk to users who submitted posts via email.
Discourse platform versions across three active release tracks expose whisper translation audit logs through bot debug endpoints to any authenticated low-privilege user. The vulnerability (CWE-200) exists across release lines 2026.1.x, 2026.3.x, and 2026.4.x, and has been patched by the vendor across all affected tracks. No public exploit exists and EPSS sits at the 9th percentile (0.03%), indicating this is a low-probability exploitation target; however, the exposure of internal moderation audit logs may pose compliance and confidentiality risks on community platforms handling sensitive staff communications.
Payment bypass in the discourse-subscriptions plugin allows unauthenticated users to gain membership in subscription-gated groups without completing a financial transaction. Affected are all Discourse installations running the subscriptions plugin prior to fixed versions 2026.1.4, 2026.3.1, 2026.4.1, and 2026.5.0-latest.1. No public exploit has been identified at time of analysis, and the CVSS 4.0 score of 2.1 reflects high attack complexity, required user interaction, and limited confidentiality impact confined to the vulnerable system.
Missing authorization in Discourse's FormTemplatesController exposes form template names and structured YAML content from restricted categories to any authenticated user, regardless of their category permissions. All active release tracks prior to versions 2026.1.4, 2026.3.1, 2026.4.1, and 2026.5.0-latest.1 are affected when the form templates feature is enabled. Impact is bounded to site configuration metadata disclosure - no post content, credentials, or user data are reachable - and no public exploit or CISA KEV listing exists, consistent with the EPSS score of 0.04% at the 12th percentile.
Discourse's AI summarization feature exposes removed or restricted content to anonymous and unprivileged users through stale cached summaries. Affected are all Discourse instances running versions prior to 2026.1.4, 2026.3.1, 2026.4.1, and 2026.5.0-latest.1 with AI summarization enabled. An unauthenticated attacker can read cached summaries that persist after the underlying content has been moderated or deleted, bypassing content removal controls. No public exploit code exists and no KEV listing has been issued at time of analysis.
Discourse versions 2026.1.0 through 2026.1.2, 2026.2.0 through 2026.2.1, and 2026.3.0-beta expose staged user custom fields and usernames on public invite pages without requiring email verification. An unauthenticated remote attacker can enumerate user information and custom field data by accessing public invitation links, potentially gathering sensitive user attributes before account activation. The vulnerability has been patched in versions 2026.1.3, 2026.2.2, and 2026.3.0, with no public exploit code or active exploitation confirmed at time of analysis.
Discourse versions 2026.1.0-2026.1.2, 2026.2.0-2026.2.1, and 2026.3.0-pre allow unauthenticated users to enumerate and view hidden staff-only tags and associated metadata through an authorization bypass flaw. All instances with tagging enabled and staff-only tag groups configured are vulnerable. The issue has been patched in versions 2026.1.3, 2026.2.2, and 2026.3.0 final. No public exploit code or active exploitation has been confirmed at the time of analysis.
Discourse versions 2026.1.0-2026.1.2, 2026.2.0-2026.2.1, and 2026.3.0-beta allow authenticated moderators to bypass category permission controls and retrieve post content, topic titles, and usernames from categories they lack authorization to access via a sentiment analytics endpoint. Patches are available (2026.1.3, 2026.2.2, 2026.3.0); no public exploit code or active exploitation has been identified.
Discourse 2026.1.0 through 2026.3.0-beta allows authenticated moderators to bypass authorization controls in the Category Chatables Controller, disclosing sensitive information about hidden group names and user counts. The vulnerability affects multiple release branches and has been patched in versions 2026.1.3, 2026.2.2, and 2026.3.0. With a CVSS score of 5.3 and low attack complexity, this represents a meaningful information disclosure risk requiring prompt patching.
Server-side request forgery (SSRF) in Discourse group email settings test endpoint allows authenticated non-staff group owners to initiate outbound connections to arbitrary hosts and ports, enabling internal network reconnaissance. Affects Discourse 2026.1.0-2026.1.2, 2026.2.0-2026.2.1, and 2026.3.0-rc versions. Patched in 2026.1.3, 2026.2.2, and 2026.3.0. No public exploit code or active exploitation confirmed at time of analysis.
Discourse versions 2026.1.0-2026.1.2, 2026.2.0-2026.2.1, and 2026.3.0-pre allow authenticated users to escalate their subscription tier by purchasing a lower-cost plan while obtaining benefits reserved for higher-tier subscriptions. The vulnerability has a CVSS 6.3 score reflecting the integrity impact, requires high attack complexity and partial timing conditions, but affects confidentiality minimally. Vendor-released patches address the flaw in versions 2026.1.3, 2026.2.2, and 2026.3.0, and the exploit likely requires knowledge of the subscription grant mechanism.
Discourse versions 2026.1.0 through 2026.1.2, 2026.2.0 through 2026.2.1, and 2026.3.0 prior to patching allow authenticated users to disclose shared draft topic titles via specially crafted inline onebox requests that reference the shared drafts category. An attacker with valid Discourse credentials can enumerate and read draft titles not intended for their access, violating information confidentiality. The vulnerability has been patched in versions 2026.1.3, 2026.2.2, and 2026.3.0; EPSS and KEV data indicate no current active exploitation, though the fix is available and should be deployed promptly given the low barrier to exploitation.
Discourse versions 2026.1.0 through 2026.1.2, 2026.2.0 through 2026.2.1, and 2026.3.0 leak read receipt metadata (who read staff-only posts and when) to non-staff users who should not have access to that information. While no post content is exposed, the metadata disclosure violates intended access controls. Patches are available in versions 2026.1.3, 2026.2.2, and 2026.3.0.
Discourse versions 2026.1.0 through 2026.1.2, 2026.2.0 through 2026.2.1, and 2026.3.0-beta retain unauthorized poll interaction capabilities for users who have lost access to private topics, allowing them to vote on and toggle poll status despite removal from category group membership. While no topic content is exposed, the vulnerability permits state modification in topics to which access should have been revoked, violating the intended access control model. Patched versions 2026.1.3, 2026.2.2, and 2026.3.0 are available, and no public exploit code has been identified.
Discourse chat user search functionality discloses channel membership information to authenticated users without proper authorization checks, allowing users to infer private channel membership across versions 2026.1.0-2026.1.2, 2026.2.0-2026.2.1, and 2026.3.0-rc1, affecting community administrators and organizations relying on channel privacy. The vulnerability requires authenticated access but carries low confidentiality impact (CVSS 4.3); patches are available in versions 2026.1.3, 2026.2.2, and 2026.3.0.
Category group moderators in Discourse versions 2026.1.0-2026.1.2, 2026.2.0-2026.2.1, and 2026.3.0-pre can perform privileged actions (such as topic moderation) on content within private categories to which they lack read access, bypassing intended access controls. This authenticated privilege escalation affects self-hosted and managed Discourse instances and has been resolved in versions 2026.1.3, 2026.2.2, and 2026.3.0+. No public exploit code or active exploitation has been reported at this time.
Stored cross-site scripting (XSS) in Discourse assignment UI allows authenticated users with assign permission to inject arbitrary HTML/JavaScript into user and group display names when the hidden prioritize_full_name_in_ux site setting is enabled, affecting versions 2026.1.0–2026.1.2, 2026.2.0–2026.2.1, and 2026.3.0. The injected payload executes in the browser of any user viewing an affected topic, enabling session hijacking, credential theft, or malware distribution. No active exploitation confirmed; however, the requirement for console access to enable the vulnerable setting and assign permission to exploit limits real-world impact, though the low CVSS score (2.1) reflects these constraints rather than severity of XSS itself.
Stored cross-site scripting (XSS) in Discourse category description API endpoints allows authenticated users with category management privileges to inject malicious scripts that execute in the browsers of other users viewing the category. The vulnerability affects Discourse versions 2026.1.0 through 2026.1.2, 2026.2.0 through 2026.2.1, and 2026.3.0-pre-release due to missing input sanitization on category description updates. Vendor-released patches address this in versions 2026.1.3, 2026.2.2, and 2026.3.0; no public exploit code has been identified at time of analysis.
Stored cross-site scripting (XSS) in Discourse allows authenticated users with conversation creation privileges to inject arbitrary HTML and JavaScript via crafted AI conversation titles, executing malicious payloads in the browsers of users viewing onebox previews and potentially enabling session hijacking or unauthorized actions. Affects Discourse versions 2026.1.0 through 2026.1.2, 2026.2.0 through 2026.2.1, and 2026.3.0-beta; patched versions 2026.1.3, 2026.2.2, and 2026.3.0 are available. No public exploit code or active exploitation has been confirmed at time of analysis.
Open redirect vulnerability in Discourse versions 2026.1.0 through 2026.3.0 allows unauthenticated remote attackers to redirect users to arbitrary destinations via a malicious sso_destination_url cookie, exploiting a lack of URL validation in the StaticController enter action. While the cookie is normally set during legitimate DiscourseConnect Provider flows with cryptographic validation, attackers can directly set client-controlled cookies to bypass validation logic. The vulnerability requires user interaction (clicking a crafted link) and persistence of attacker-controlled cookies to exploit, but successful exploitation can be used for credential harvesting or phishing attacks. No public exploit code or active exploitation has been confirmed at time of analysis. Patched versions 2026.1.3, 2026.2.2, and 2026.3.0 are available.
Discourse moderators can export CSV data from admin-restricted reports in versions 2026.1.0-2026.1.2, 2026.2.0-2026.2.1, and 2026.3.0-beta, circumventing role-based access controls and exposing sensitive operational data intended exclusively for administrators. The vulnerability requires authenticated moderator access but carries low confidentiality impact (CVSS 5.3). Vendor-released patches are available in Discourse 2026.1.3, 2026.2.2, and 2026.3.0.
Discourse versions 2026.1.0-2026.1.2, 2026.2.0-2026.2.1, and 2026.3.0 leak Stripe API keys across sites in multisite cluster deployments due to improper credential isolation in the discourse-subscriptions plugin, allowing authenticated users with UI access on one site to view payment credentials belonging to other sites within the same cluster. CVSS 2.0 reflects low severity (information disclosure only, requires authentication and user interaction), but the exposure of payment processor credentials carries material business risk. Patches are available in versions 2026.1.3, 2026.2.2, and 2026.3.0.
An authorization bypass vulnerability exists in Discourse prior to versions 2026.3.0-latest.1, 2026.2.1, and 2026.1.2, where non-staff users with elevated group membership can access deleted posts belonging to any user through an overly permissive authorization check on the deleted posts index endpoint. This is a CWE-863 (Incorrect Authorization) vulnerability that allows unauthorized information disclosure of deleted content. No public exploit or active exploitation in the wild has been reported, but patches are available and no workarounds exist.
Discourse versions prior to 2026.3.0-latest.1, 2026.2.1, and 2026.1.2 contain an authorization bypass vulnerability where users with tag-editing permissions can edit and create tag synonyms for tags within restricted tag groups, even when those users lack visibility into the restricted tags themselves. This represents a broken access control issue (CWE-862) with low CVSS score (3.5) due to high privilege requirement and limited impact scope, though it enables unauthorized information disclosure and tag manipulation within the platform. No public exploit code or active exploitation in the wild has been reported at this time.
An information disclosure vulnerability in Discourse prior to versions 2026.3.0-latest.1, 2026.2.1, and 2026.1.2 allows unauthenticated attackers to enumerate private group membership by observing directory result changes when manipulating the exclude_groups parameter. This enables attackers to determine whether specific users are members of private groups without authentication, representing a direct privacy violation. The vulnerability does not appear to be actively exploited in the wild (no KEV status indicated), but patches are available from the vendor.
Discourse versions prior to 2026.3.0-latest.1, 2026.2.1, and 2026.1.2 contain an access control bypass vulnerability where attackers can grant invites to private message topics even after losing direct access to those conversations. This authentication bypass (CWE-863) allows unauthorized lateral privilege escalation within discussion communities. No public exploit code has been widely reported, but the vulnerability is patched across multiple release branches, indicating vendor awareness of active exploitation risk.
A privilege escalation vulnerability in Discourse allows staff members to arbitrarily modify group notification levels for any user without proper authorization checks. This affects Discourse versions prior to 2026.3.0-latest.1, 2026.2.1, and 2026.1.2, enabling authenticated staff users to alter notification settings for other users in ways they should not be permitted to do. While no CVSS score or EPSS data is available and no known public exploits have been confirmed, the vulnerability is classified under CWE-862 (Missing Authorization) and has been assigned a GitHub Security Advisory (GHSA-qggq-wr6h-vhrg) with patches available.
Discourse versions prior to 2026.3.0-latest.1, 2026.2.1, and 2026.1.2 contain an information disclosure vulnerability where IP addresses of flagged users are exposed to any user with access to the review queue, including those without proper authorization. This allows unauthorized access to sensitive network information that should be restricted to administrators. The vulnerability has a CVSS score of 3.5 (low severity) with no known public exploits or KEV designation, but represents a clear privacy and data protection issue in moderation workflows.
A stored cross-site scripting (XSS) vulnerability exists in Discourse's solved posts stream feature where unsanitized topic titles can be persisted and executed in the browser context of authenticated users. The vulnerability affects Discourse versions prior to 2026.3.0-latest.1, 2026.2.1, and 2026.1.2, allowing authenticated attackers to inject malicious JavaScript that executes in the browsers of other users viewing the affected topics. While the CVSS score of 5.4 reflects moderate severity with low impact scope and no availability impact, the attack requires user interaction indirectly through viewing a crafted topic title, making real-world exploitation limited to scenarios where attackers have post creation privileges.
A broken access control vulnerability in Discourse versions prior to 2026.3.0-latest.1, 2026.2.1, and 2026.1.2 allows moderators to create Zendesk support tickets for topics they lack permission to view, bypassing intended access restrictions. This affects all Discourse forums utilizing the Zendesk plugin integration. The vulnerability is classified as CWE-863 (Incorrect Authorization) and has no publicly disclosed active exploitation or proof-of-concept code, though patches are available from the vendor.
An authorization bypass vulnerability in Discourse versions prior to 2026.3.0-latest.1, 2026.2.1, and 2026.1.2 allows authenticated users to accept or unaccept solutions in hidden Solved topics without proper authorization checks. The vulnerability affects the open-source Discourse discussion platform and permits users with valid credentials to manipulate solution status across topics they should not have access to, resulting in information disclosure and integrity violations. This is a low-to-moderate severity issue with a CVSS score of 5.4 that requires prior authentication but carries exploitation risk in multi-tenant or federated Discourse installations.
An Insecure Direct Object Reference (IDOR) vulnerability in Discourse allows any authenticated user to access restricted metadata about AI personas, features, and LLM models by directly referencing their identifiers, exposing sensitive information including credit allocations and usage statistics. The vulnerability affects Discourse versions prior to 2026.3.0-latest.1, 2026.2.1, and 2026.1.2, and requires only low-privilege access (any logged-in user account) over the network. While the CVSS score of 5.3 indicates low confidentiality impact with no integrity or availability impact, this represents a clear information disclosure risk that could enable unauthorized tracking of AI resource consumption and usage patterns.
Discourse prior to versions 2026.3.0-latest.1, 2026.2.1, and 2026.1.2 contains an information disclosure vulnerability in the ComposerController#mentions endpoint that reveals hidden group membership to any authenticated user capable of messaging the group. An attacker can exploit this by supplying hidden-membership group names and probing arbitrary usernames to infer membership based on whether the user_reasons field returns 'private', effectively bypassing group member-visibility controls designed to protect sensitive group information. This vulnerability is not known to be actively exploited in the wild (KEV status unknown), carries a moderate CVSS score of 5.3 reflecting low confidentiality impact with low attack complexity, and requires prior authentication.
A remote code execution vulnerability in Discourse (CVSS 5.3). Remediation should follow standard vulnerability management procedures.
Discourse versions prior to 2026.3.0-latest.1, 2026.2.1, and 2026.1.2 contain an authorization bypass vulnerability in the user actions endpoint that allows authenticated users to access other users' private activity data. An attacker with valid login credentials can enumerate and view private user actions without proper permission checks, resulting in information disclosure. This is a moderate-severity issue with a CVSS score of 5.3 that requires authentication to exploit but has no known active exploitation or public proof-of-concept at this time.
A moderator authorization bypass vulnerability in Discourse allows authenticated moderators to access post metadata they should not have permission to view due to insufficient authorization checks. The vulnerability affects Discourse versions prior to 2026.3.0-latest.1, 2026.2.1, and 2026.1.2, with patched versions now available. While the CVSS score of 5.3 indicates moderate severity and the attack requires authenticated access with moderator privileges, this represents a meaningful confidentiality risk in multi-tenant forum environments where metadata isolation between moderation scopes is critical.
Missing actor-identity and object-ownership checks in the Discourse ActivityPub plugin allow remote attackers to edit, delete, or reply to federated posts without the permissions those actions normally require. Because inbound ActivityPub processing trusts the Activity actor declared inside the payload rather than the actor authenticated by the request's HTTP signature, anyone who can produce a valid HTTP signature for any federated actor can operate on posts that actor does not own; the assessed vector (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N) confirms no account on the target Discourse instance is needed, with the impact being unauthorized modification rather than data exposure. No public exploit code has been identified at time of analysis and the issue is not confirmed as actively exploited (not in CISA KEV), though the fixing commit is publicly visible and the affected CPE entry spans all plugin versions prior to that commit. Exposure is limited to Discourse instances that have installed and enabled the ActivityPub federation plugin, since stock Discourse does not ship it.
Discourse forums with the non-default 'secure uploads' feature enabled could keep serving media and attachments to anonymous visitors after the owning category was made read-restricted, because per-upload security metadata was never reconciled when a category's read_restricted flag flipped or when category permissions changed during a bulk import. Only uploads that were posted while the category was still public are exposed - including uploads attached to topics that were later deleted - and they remain reachable through their short upload URLs, which an attacker must know or enumerate; the vendor's reported CVSS 3.1 base of 7.5 reflects network, unauthenticated, no-interaction access, although our assessment raises complexity to High (AC:H) because both a specific non-default configuration and a triggering permission event are required. The issue is fixed in 2026.9.0, 2026.8.1, 2026.7.3 and 2026.1.9, and no public exploit was identified at time of analysis.
Authenticated users on Discourse sites running the bundled Chat plugin can receive live and recent private-category channel messages they are not entitled to see, because the MessageBus publication audience for a read-restricted category channel is bounded by category visibility alone and never verifies Chat eligibility under the site's group restrictions (CWE-862 missing authorization). Only sites where chat is enabled, a chat channel is attached to a read-restricted category, and chat_allowed_groups are configured such that a user may view the category while being excluded from Chat are affected; exploitation requires a valid authenticated account with category-view access, which the assessed vector reflects (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N). Disclosure is confined to messages flowing through the MessageBus stream and its short backlog - the Chat API does not expose full channel history, and no message creation or modification is possible - making this a moderate confidentiality-only issue with no public exploit identified at time of analysis.
Stored visual overlay injection in Discourse before 2026.9.0, 2026.8.1, 2026.7.3, and 2026.1.9 allows an authenticated user with posting permission to embed misleading or fraudulent UI content in posts by controlling a fetched webpage and its oEmbed response alongside an allowlisted iframe. The authoritative assessment rates this as limited integrity impact (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:L/A:N) rather than the vendor/GHSA 7.7 high score, because exploitation requires a posting account, external attacker-controlled infrastructure, and an iframe source matching the site's configured allowlist; it does not expose restricted data, affect availability, or bypass Discourse CSP. No public exploit was identified at time of analysis, and vendor patches are available in 2026.9.0, 2026.8.1, 2026.7.3, and 2026.1.9.
Stored cross-site scripting in Discourse's video-placeholder component lets an authenticated user with default trust-level posting privileges embed a crafted video URL in a post that breaks out of the placeholder's data-video-src attribute and injects an attacker-controlled event handler, which fires when another user opens the post and clicks the video play overlay. Exploitation is gated by three independent conditions - a valid posting account (CVSS PR:L, so authenticated), the target instance running with its Content Security Policy disabled or relaxed (the default CSP blocks inline event handlers and defeats the attack), and specific victim interaction (UI:R) - so realistic risk is materially lower than the 8.7 base score implies; our assessment rates it AC:H with only low confidentiality and integrity impact. No public exploit code and no confirmed active exploitation (no CISA KEV listing) were identified at time of analysis, and the vendor has released fixed versions 2026.1.8, 2026.6.3, 2026.7.2 and 2026.8.0.
An authenticated Discourse user who can post content can bypass the administrator's `allowed_iframes` subpath restriction and embed iframe content from a path the administrator never authorized, affecting all Discourse releases prior to 2026.1.8, 2026.6.3, 2026.7.2, and 2026.8.0. The allowlist guard did not treat literal backslashes as path separators after decoding percent-encoded dot segments, so a crafted iframe source passed the subpath check while browser URL normalization resolved the frame outside the permitted path; exploitation requires a victim to view the post and depends on the viewer browser's backslash normalization behavior, consistent with the assessed vector AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N (limited confidentiality and integrity impact, no availability impact, scope change). This is a moderate, non-priority finding - no public exploit identified at time of analysis.
SQL injection in Discourse's Data Explorer plugin exposes the entire database to unauthorized reads by any user who can execute a shared parameterized query, including non-staff group members. The flaw stems from recursive parameter interpolation: a crafted parameter value could introduce additional parameters, and SQL comment syntax could be used to inject arbitrary statements. Queries execute in a read-only PostgreSQL transaction, so writes are blocked, but every database table - including private messages, user emails, hashed credentials, and API keys - is readable. No public exploit code has been identified at time of analysis, and no CISA KEV listing exists.
Stored cross-site scripting in Discourse's Chat plugin allows an authenticated user to inject arbitrary HTML and JavaScript into any viewer's browser session by embedding a malicious payload in the username field of a chat-transcript quote block. The Rich Text Editor rendered the username attribute via `innerHTML` without sanitization, meaning any authenticated Discourse member with chat access could craft a quote block that executes attacker-controlled script when a victim - potentially a moderator or administrator - views the transcript. Patch versions 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0 are confirmed released; no public exploit code or active exploitation (CISA KEV) has been identified at time of analysis.
Stored cross-site scripting in Discourse (before 2026.6.0, 2026.5.1, 2026.4.2, and 2026.1.5) lets a user with permission to set a topic "featured link" inject JavaScript that executes when the link is rendered in the topic list. Exploitation only succeeds where the platform's default Content Security Policy has been weakened or disabled, so out-of-the-box installs are protected in depth. No public exploit identified at time of analysis, and the issue is not in CISA KEV; official fixed releases are available.
Stored cross-site scripting in the Discourse discussion platform allows a low-privileged registered user to set a malicious two-factor authenticator name that executes JavaScript in an administrator's browser when that admin impersonates the account and opens the 2FA delete confirmation dialog. Affected builds are Discourse before 2026.6.0, 2026.5.1, 2026.4.2, and 2026.1.5, spanning the 2026.1.x through 2026.6.x release lines. There is no public exploit identified at time of analysis and the EPSS probability is low (0.39%), but the fix commit's regression test reveals the exact working payload, and successful exploitation runs in a full-admin context.
Privilege escalation in Discourse (the open-source discussion platform) lets a newly registered user obtain whisper-group ('whisperer') privileges by supplying a primary_group_id during the signup flow, without ever being a legitimate member of that group. Exploitation only matters on sites that have configured whispers_allowed_groups, and success grants read access to staff-only whisper posts (a confidentiality-focused impact). EPSS is low (0.31%, 23rd percentile) and there is no public exploit identified at time of analysis, but the fix commits and GitHub advisory GHSA-vmwq-jvxx-jwfx confirm the flaw and its remediation.
Remote code execution in Discourse (via the discourse-ai plugin's PDF-to-text feature) allows an attacker who can upload a crafted PDF to run arbitrary commands on the server, but only in non-default configurations where an LLM vision model is configured. The flaw is a CWE-78 OS command injection reached when uploaded PDFs are rasterized through ImageMagick, which in turn invokes an external delegate (Ghostscript) on attacker-controlled input. It is not in CISA KEV and has no public exploit identified at time of analysis; EPSS is low at 0.33% (25th percentile), and vendor patches exist across all supported release lines.
Information disclosure in Discourse discussion platform allows any MessageBus subscriber to receive real-time chat message payloads from public category channels without proper permission scoping, even when chat is not enabled for that user. The flaw affects versions 2026.1.0 through 2026.1.3, 2026.3.0 through 2026.3.0, and 2026.4.0 through 2026.4.0, and is fixed in 2026.1.4, 2026.3.1, 2026.4.1, and 2026.5.0-latest.1. No public exploit identified at time of analysis, but the unauthenticated network attack vector makes this a meaningful confidentiality concern for forums leveraging chat.
Discourse versions prior to 2026.3.0-latest.1, 2026.2.1, and 2026.1.2 contain an authorization page spoofing vulnerability that allows unauthenticated attackers to inject attacker-controlled domains into legitimate Discourse authorization pages, enabling social engineering attacks. This CWE-862 (Missing Authorization) class vulnerability affects all affected Discourse installations and requires no authentication or special privileges to exploit. No active exploitation in the wild (KEV status) has been reported, but the attack surface is broad given Discourse's widespread use as an open-source discussion platform.
A remote code execution vulnerability in Discourse (CVSS 7.5). High severity vulnerability requiring prompt remediation.
Unauthorized information disclosure in Discourse discussion platform versions prior to 2026.3.0-latest.1, 2026.2.1, and 2026.1.2 allows unauthenticated attackers to view restricted post titles and excerpts through inadequate permission validation on user action API endpoints. The vulnerability affects all deployments running vulnerable versions, with no available workarounds until patching to the fixed releases.
Discourse versions prior to 2025.12.2, 2026.1.1, and 2026.2.0 contain an insecure direct object reference (IDOR) in the directory items endpoint that allows unauthenticated attackers to retrieve private user field values for all directory users. The vulnerability stems from missing authorization checks on the user_field_ids parameter, enabling bulk exfiltration of sensitive user data that should be restricted by visibility settings. No patch is currently available for affected deployments.
Discourse instances with an unconfigured patreon_webhook_secret allow remote attackers to forge valid webhook signatures using an empty HMAC-MD5 key, enabling arbitrary creation, modification, or deletion of Patreon pledge data and unauthorized patron synchronization. The vulnerability affects Discourse versions prior to 2025.12.2, 2026.1.1, and 2026.2.0, and currently lacks an available patch. Administrators must explicitly configure the patreon_webhook_secret setting or upgrade to patched versions to mitigate this integrity attack.
Discourse is an open source discussion platform. [CVSS 7.5 HIGH]
Topic-title disclosure in the Discourse Doc Categories plugin lets an authenticated user who holds edit rights on a documentation index topic learn the titles of private messages and topics in read-restricted categories that the user is not authorized to view. The index refresh routine resolves linked topic titles without enforcing viewer authorization, so the leaked titles appear in the generated index structure even though the underlying topic contents remain inaccessible. Rated CVSS 4.3 (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N) with no public exploit identified at time of analysis and no confirmed active exploitation; the issue is largely confined to non-default Discourse instances that have this plugin installed and actively used, and the fix is a targeted authorization filter in the upstream commit b15d4de02ad29d7c9525346afee51fef4a2c605a.
Stored HTML injection in Discourse's topic small-action and nested-activity-log components lets an authenticated user with a crafted display name break out of the mention-link href attribute and inject arbitrary markup into the trusted page for anyone who later views the affected topic action or activity log. Attackers need only an account and a quote-bearing name (or any attacker-influenced action_code_who value); the victim requires no interaction beyond loading the topic, and the payload persists in stored topic history. The issue is limited to Unicode-encoded href paths in versions before 2026.1.8, 2026.6.3, 2026.7.2 and 2026.8.0, and no public exploit code or confirmed active exploitation was identified at time of analysis; Discourse's default Content-Security-Policy means full script execution is realistic mainly on instances that weaken or disable CSP, so the practical impact is moderate rather than critical.
Trusted-HTML injection in Discourse chat excerpt renderers lets an authenticated user who can both upload files and post chat content embed HTML markup in a filename, which is then rendered unescaped in chat channel lists, chat summary emails, pinned message bars, reply previews, thread previews and other excerpt surfaces. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:L/A:N, score 5.0) confirms the attacker must be authenticated and that only content integrity is affected, with scope change reflecting that the injected markup renders in contexts beyond the uploader's own message; no public exploit code has been identified at time of analysis and JavaScript execution was not demonstrated under the default Content Security Policy. The practical risk is low and is driven almost entirely by sites that have disabled or relaxed the default CSP, which the advisory notes have increased exposure to script-level attacks. Fixed versions are 2026.1.8, 2026.6.3, 2026.7.2 and 2026.8.0.
Stored cross-site scripting in Discourse's notification email and chat-summary rendering paths allows an authenticated user with standard posting privileges to inject markup into messages generated for other users. In versions prior to 2026.1.8, 2026.6.3, 2026.7.2, and 2026.8.0, a post referencing a video from an enabled provider (YouTube, Vimeo, or TikTok) whose provider-side title contains markup is reparsed as HTML when the notification email or chat summary is built, so recipients reading those messages in an HTML-capable email client may render injected content, potentially including event handlers; impact is confined to the email/chat rendering context and does not reach the Discourse browser session or the forum page itself. Lazy video embeds must be enabled (the default configuration) for exploitation, authentication requirements are confirmed as low-privileged (CVSS vector PR:L), no public exploit code has been identified at time of analysis, and this is assessed as a genuine but low-priority issue.
Rendering of attacker-controlled iframes in Discourse is possible on sites that configure wildcard patterns in the allowed_iframes setting, allowing an authenticated user with posting privileges to embed an iframe whose origin is not actually allowlisted. The flaw is a bypass of the wildcard origin check: a crafted URL places the allowlisted suffix after a URL authority separator, so Discourse's text-based match succeeds while the browser resolves a different, attacker-controlled origin, and the iframe is then rendered through a post or a Onebox oEmbed response. Rated CVSS 4.3 (CWE-346, origin validation error) with only a low integrity impact and no confidentiality or availability impact; exploitation requires both a wildcard iframe configuration and posting privileges (PR:L), and no public exploit was identified at time of analysis.
Authenticated users on Discourse forums running versions prior to 2026.1.8, 2026.6.3, 2026.7.2, or 2026.8.0 can read upload metadata they are not authorized to see - including original filenames and secure-upload paths - by submitting unescaped SQL LIKE wildcard characters where the application expects a literal upload identifier. The flaw (CWE-943) causes upload-metadata lookups, URL lookups, and cooked-video-placeholder resolution to match unrelated upload records instead of the intended one, leaking restricted information without modifying any records. Exploitation requires an authenticated account (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N) and works against default configurations, so instances that allow self-registration or host many low-trust members carry the most exposure; there is no public exploit identified at time of analysis and no confirmed active exploitation (CISA KEV not applicable). Vendor-released patches exist in 2026.1.8, 2026.6.3, 2026.7.2, and 2026.8.0.
Stored cross-origin iframe injection in Discourse allows an authenticated user with posting privileges to bypass the allowed_iframes prefix policy by embedding an iframe whose src contains encoded userinfo, so the sanitizer's decoded validation passes while the browser resolves an attacker-controlled host. Affected releases are those prior to 2026.1.8, 2026.6.3, 2026.7.2, and 2026.8.0; the assessed CVSS 3.1 vector is AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N (5.4), reflecting limited confidentiality and integrity impact and no availability loss. Exploitation requires a valid posting account and a site where at least one iframe host prefix is permitted, and there is no public exploit identified at time of analysis; the risk is genuine but moderate rather than an emergency.
Discourse's moderator review queue can expose the contents of private messages to moderators who are not participants in those conversations, because reviewables generated by the optional Discourse AI plugin were not filtered to the audience permitted to access the underlying private-message topic. Affected deployments are those running releases prior to 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0 with the Discourse AI feature producing reviewables; exploitation requires an authenticated moderator account, the AI plugin, and a pre-existing AI reviewable tied to a PM the moderator is not a participant in, so an attacker cannot reliably force the required state. Confidentiality impact is high (and a moderator may additionally close the PM topic or delete a post if the relevant reviewable actions are available), but real-world risk is low-to-moderate given the high privilege required, the dependence on optional functionality, and the opportunistic precondition; no public exploit identified at time of analysis.
Stored cross-site scripting in Discourse before 2026.7.0 allows an authenticated user who can set a custom display name to persist markup that is later rendered in post action descriptions, so that any other user browsing the affected activity streams runs attacker-controlled script in their browser. The vendor scores it 5.4 (Medium) with the vector CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N, reflecting an authenticated attacker (PR:L) and a required victim interaction (UI:R), with scope change because the script executes in other users' sessions against the Discourse origin. The vendor-released fix is version 2026.7.0; there is no public exploit code identified at time of analysis and no CISA KEV listing.
Tag name information disclosure in Discourse's discourse-templates plugin exposes hidden tag names to any authenticated user via the /discourse_templates endpoint. The TemplatesSerializer in the plugin bypassed Discourse's Guardian authorization layer when serializing topic tags, causing tags belonging to restricted tag groups - such as staff-only labels - to appear in API responses regardless of the requesting user's permissions. Vendor-released patches are available across four version branches; no public exploit code or active exploitation has been identified.
Cross-site scripting in Discourse's discourse-local-dates plugin allows an authenticated attacker to inject arbitrary HTML by embedding crafted markup in local-date format attributes (data-format, data-displayed-timezone, data-timezone), which were interpolated directly into the DOM via template literals instead of safe DOM text APIs. Exploitation is gated by a non-default condition: the site's Content Security Policy must be modified or disabled from the default. No public exploit independent of the vendor fix commits exists at time of analysis, and this is not listed in CISA KEV. The CVSS 4.0 score of 2.0 reflects the constrained attack requirements (AT:P, PR:L, UI:A).
Onebox allowlist bypass in Discourse (all versions prior to 2026.1.7) enables authenticated forum users to embed malicious iframes and attacker-controlled content in posts by exploiting a regex prefix-matching flaw in the `origins_to_regexes` method. The core defect - missing URL boundary anchors and an overly permissive wildcard expansion - allows domains like `youtube.com.attacker.example` to pass validation as the allowlisted `youtube.com`. No public exploit has been identified at time of analysis and the vulnerability is absent from the CISA KEV catalog; vendor-released patches exist as versions 2026.1.7, 2026.6.2, 2026.7.1, and 2026.8.0-latest.1.
Stored cross-site scripting in Discourse's moderation review queue allows a low-privileged registered user to execute arbitrary JavaScript in a moderator's browser session. All Discourse deployments running versions prior to 2026.1.6, 2026.5.2, 2026.6.1, or 2026.7.0 are affected, but only when the platform's default Content Security Policy has been modified or disabled. No public exploit identified at time of analysis and no CISA KEV listing; real-world risk is bounded by both the CSP prerequisite and the requirement for moderator interaction.
Private AI bot conversation content leaks to unauthorized authenticated users in Discourse via an improperly scoped MessageBus reply stream in the discourse-ai plugin. Authenticated members of any Discourse instance running the discourse-ai plugin prior to versions 2026.1.6, 2026.5.2, 2026.6.1, or 2026.7.0 can intercept real-time streaming content of private message conversations between other users and the AI bot. No public exploit code has been identified at time of analysis, and the CVE is not listed in the CISA KEV catalog, but the low attack complexity and straightforward exploitation path represent a meaningful confidentiality risk for any deployment actively using AI bot private message features.
Stored XSS in Discourse's staff action log interface allows authenticated users to inject malicious HTML into log entries that execute in administrator browser sessions. All Discourse releases prior to 2026.1.6 are affected, with the root cause being an unescaped rendering of previous_value and new_value fields in the admin frontend model. No active exploitation or public exploit code has been identified at time of analysis; vendor-released patches across four stable branches confirm the issue is fully remediated.
Discourse's Chat plugin exposes private thread message content to authenticated users who lack access to the private channel. The onebox handler in plugins/chat/lib/chat/onebox_handler.rb resolves Chat::Thread using the route's thread_id before verifying whether the requesting user can access the associated channel_id, allowing a mismatched public-channel/private-thread pair to be submitted via /onebox.json. This is confirmed fixed in versions 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0; no public exploit or CISA KEV listing has been identified at time of analysis.
Unauthorized tag enumeration in Discourse exposes restricted tag names and descriptions to unauthenticated users via the /site.json endpoint. The flaw exists in all Discourse releases prior to 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0, where the anonymous site serializer populates default navigation menu tags from SiteSettings without invoking the DiscourseTagging.filter_visible visibility guard. Attackers can trivially enumerate tag names and descriptions that administrators have restricted to specific categories, category tag groups, or tag-group permission rules, undermining Discourse's information compartmentalization model. No public exploit code or active exploitation has been identified at time of analysis.
TopicLink authorization bypass in Discourse exposes restricted content metadata to authenticated users who lack permission to view those resources. All Discourse versions prior to 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0 are affected. An authenticated user can craft internal links to private messages, restricted topics, or hidden posts and recover their canonicalized slugs or titles via the composer_messages duplicate_lookup API endpoint, even though those resources are not visible to them. No public exploit code or active exploitation has been identified at time of analysis.
Onebox domain blocklist bypass in Discourse allows forum users to circumvent administrator-configured content restrictions by exploiting case-sensitive hostname comparison in `Onebox::DomainChecker.is_blocked?`. Versions prior to 2026.1.6, 2026.5.2, 2026.6.1, and 2026.7.0 are affected across all maintained release branches. An attacker with a forum account can post a link whose redirect target hostname uses mixed casing (e.g., `BLOCKED-Domain.Com`) to evade blocklist enforcement and cause Discourse to render a rich link preview of content the administrator intended to restrict. No public exploit has been identified and the vulnerability is absent from CISA KEV.
HTML injection in Discourse's PrettyText.format_for_email function allows authenticated users to embed arbitrary markup into outbound email notifications across all versions prior to 2026.1.7, 2026.6.2, 2026.7.1, and 2026.8.0-latest.1. Three distinct code paths in the email conversion pipeline re-inject cooked HTML attribute values as raw markup strings rather than treating them as data - exploitable via crafted Vimeo iframe sources, secure-upload URLs or dimension attributes, and hashtag data-slug values. No public exploit code or CISA KEV listing is identified at time of analysis; the CVSS 3.1 score of 6.4 reflects a meaningful scope change to email recipients' clients combined with the low-privilege authentication requirement.
Discourse's post revision system exposes hidden edit history to unauthenticated network users through a serialization flaw in PostRevisionSerializer. When computing diffs between adjacent visible revisions, the serializer failed to enforce visibility restrictions, leaking content from revisions that moderators or administrators had marked as hidden. No active exploitation has been identified at time of analysis, but the unauthenticated, low-complexity attack vector means any visitor to a vulnerable Discourse instance can potentially access suppressed post content - including moderator-redacted material - without any credentials or special access.
Stored cross-site scripting in Discourse's SVG upload and user avatar handling allows authenticated users to inject malicious JavaScript that executes in victims' browsers when they visit specific non-standard URLs. The CVSS scope change (S:C) reflects that successful exploitation crosses the browser security boundary, enabling session token theft or account takeover against victims who visit the triggering URL. Vendor-confirmed patches are available across four release branches; no public exploit code or CISA KEV listing has been identified at time of analysis.
Discourse's AWS SES bounce webhook endpoint (POST /webhooks/aws) validates Amazon SNS message signatures but omits TopicArn binding, allowing any AWS account holder to publish legitimately signed forged Bounce notifications that revoke a targeted Discourse user's email address. Versions prior to 2026.6.0, 2026.5.1, 2026.4.2, and 2026.1.5 across all active release branches are affected when the SES integration is enabled. No public exploit code exists and the vulnerability is not listed in CISA KEV, but the low attack complexity and absence of Discourse-side authentication requirements make targeted abuse realistic for any motivated actor with an AWS account.
Restricted tag and tag-group name disclosure in Discourse exposes internal taxonomy metadata to anonymous and unauthorized users via the category and group API endpoints. All Discourse versions prior to 2026.6.0, 2026.5.1, 2026.4.2, and 2026.1.5 are affected when restricted tags or tag groups are configured on publicly readable categories. An unauthenticated actor can enumerate these names - which may contain sensitive organizational labels, project codenames, or internal classifications - using standard HTTP requests with no exploit tooling required. No public exploit code exists and this is not listed in CISA KEV; the CVSS 4.0 AT:P modifier confirms that exploitation requires a specific non-default configuration to be present.
Unauthorized write access to the admin backup store in Discourse allows any authenticated regular user to route S3 multipart uploads into a storage area that should be restricted to administrators. The flaw exists in ExternalUploadManager, which fails to enforce authorization checks (CWE-862) when accepting direct S3 multipart upload requests, meaning a low-privilege account holder can target the admin backup destination path without restriction. No active exploitation has been confirmed by CISA KEV, and no public exploit code has been identified at time of analysis, but the low attack complexity and network accessibility make this a credible threat on any Discourse deployment using S3 direct uploads.
Secure upload bypass in Discourse exposes protected files through the pull_hotlinked_images feature, which fails to enforce the secure_uploads access control when processing posts containing a known secure URL. Affected instances are those running versions prior to 2026.6.0, 2026.5.1, 2026.4.2, or 2026.1.5 with the secure_uploads site setting enabled. No public exploit has been identified at time of analysis and this vulnerability is not listed in CISA KEV; however, the fix commits are publicly visible on GitHub, potentially aiding reverse-engineering of the flaw.
EventSerializer in Discourse improperly exposes private event invitation metadata - including invited group names, sample invitee usernames, and attendance statistics - to any user who can view the topic, regardless of their authorization to access the private invitee list. All Discourse installations prior to versions 2026.6.0, 2026.5.1, 2026.4.2, and 2026.1.5 are affected when event functionality is in use. No public exploit or active exploitation (CISA KEV) has been identified, but the trivial network vector (AV:N/AC:L/PR:N/UI:N) makes this passively accessible to any user - authenticated or not - with topic-read access on an open or semi-open forum.
Tag group name disclosure in Discourse exposes restricted organizational metadata to anonymous and unprivileged users via a serializer that omits visibility filtering. Affected release lines are 2026.1.x (before 2026.1.4), 2026.3.x (before 2026.3.1), and 2026.4.x (before 2026.4.1), with the root cause being that DetailedTagSerializer#tag_group_names returned all group memberships without consulting the requesting user's permissions. An unauthenticated attacker can enumerate the names of tag groups restricted to specific user groups or non-visible categories, potentially leaking the internal structure of private forum spaces; no public exploit code has been identified at time of analysis and EPSS is 0.04% (11th percentile), indicating negligible observed exploitation activity.
Unauthorized access to webhook event data in Discourse exposes internal webhook payloads to any authenticated user - or unauthenticated users on instances with login_required disabled - across versions 2026.1.0 through several branch heads. The flaw resides in the MessageBus channel /web_hook_events/<id>, which the Jobs::RedeliverWebHookEvents job publishes to without enforcing group_id restrictions, allowing unrestricted channel subscription. Compounded by trivially enumerable sequential integer webhook IDs, any low-privilege or anonymous actor can iterate over webhook event history without authorization. No public exploit code exists and EPSS is 0.03% (9th percentile), indicating no observed widespread exploitation at time of analysis.
Path traversal in Discourse's backup download handler allows an authenticated administrator on one site within a multisite deployment to retrieve backup archives belonging to a co-hosted site on the same server. Backup files typically contain full database dumps, private messages, user credentials, and email addresses, making cross-site access a serious trust-boundary violation. No public exploit has been identified and EPSS sits at 0.04% (12th percentile), reflecting the narrow exploitation conditions; vendor-released patches are available across all affected release trains.
Discourse chat plugin across versions 2026.1.0-2026.4.x contains four authorization deficiencies (CWE-862) enabling both information disclosure and unauthorized write actions: calendar event API payloads expose the associated chat channel's last message - potentially a private DM - to unauthenticated users, while separate flaws allow read-only users to create chat threads, authors to restore their own deleted messages after losing channel access, and moderators reviewing flagged messages to inadvertently view unrelated DM content. Vendor-released patches exist for all supported branches; no public exploit identified at time of analysis and EPSS is 0.04% (11th percentile), but the unauthenticated DM disclosure warrants prompt patching on public-facing instances.
Discourse's AI 'explain' helper exposes raw content of hidden posts to any authenticated user with access to the feature, due to an incomplete authorization check on parent posts. Affected instances span three release tracks - 2026.1.x, 2026.3.x, and 2026.4.x - and any user who can invoke the AI helper and find a visible reply to a hidden post can silently read the hidden post's raw text. No public exploit code has been identified and EPSS places exploitation probability at 0.03% (9th percentile), indicating this is a low-urgency but genuine confidentiality bypass for deployments where hidden post content is sensitive.
Discourse group owners can retrieve plaintext SMTP credentials - including passwords, usernames, server, port, and SSL mode - from the group history log endpoint (/groups/:name/logs.json), affecting versions 2026.1.0-latest through pre-2026.1.4, 2026.3.0-latest through pre-2026.3.1, and 2026.4.0-latest through pre-2026.4.1. An authenticated group owner who holds no admin or moderator privileges can harvest the exposed SMTP password and use it to send mail impersonating the group's email identity from any external mail client, entirely bypassing Discourse's own sending controls. No public exploit code exists and this vulnerability is not listed in CISA KEV; the EPSS score of 0.03% at the 11th percentile reflects the narrow, configuration-dependent attack surface.
Whisper channel access control in Discourse can be bypassed by any authenticated forum user, allowing injection of content into staff-only whisper threads visible to moderators and staff. Affected release trains span 2026.1.0-latest through pre-2026.1.4, 2026.3.0-latest through pre-2026.3.1, and 2026.4.0-latest through pre-2026.4.1, with all fixes confirmed by the vendor in the GitHub Security Advisory. An attacker holding only a standard forum account can exploit the reply mechanism to post messages that surface inside privileged staff whisper channels, potentially poisoning internal moderation communications or probing staff responses for sensitive operational detail. No public exploit is identified at time of analysis, and EPSS places exploitation probability at the 9th percentile.
Discourse's GroupPostSerializer leaks user real names to authenticated users even when site administrators have explicitly disabled name display via the enable_names site setting. Affected versions span the 2026.1.x, 2026.3.x, and 2026.4.x release lines. An authenticated user querying group post endpoints receives real name data that the platform operator intended to suppress, undermining privacy configurations on Discourse instances that host pseudonymous or anonymous communities. No public exploit code exists and no active exploitation has been identified; the EPSS score of 0.03% (9th percentile) reflects low exploitation probability.
Discourse's ReviewableQueuedPostSerializer unconditionally exposes full inbound email source - including SMTP headers, sender trace, mail user agent, and body - to category moderation group members accessing the review queue, bypassing the view_raw_email_allowed_groups trust boundary that restricts the dedicated raw-email endpoint. Affected versions span the 2026.1.x, 2026.3.x, and 2026.4.x series on deployments using Discourse's incoming email feature. No public exploit has been identified and EPSS stands at 0.03% (9th percentile), indicating low automated exploitation probability, though the exposed data - including sender IP addresses and routing headers - presents meaningful privacy and de-anonymization risk to users who submitted posts via email.
Discourse platform versions across three active release tracks expose whisper translation audit logs through bot debug endpoints to any authenticated low-privilege user. The vulnerability (CWE-200) exists across release lines 2026.1.x, 2026.3.x, and 2026.4.x, and has been patched by the vendor across all affected tracks. No public exploit exists and EPSS sits at the 9th percentile (0.03%), indicating this is a low-probability exploitation target; however, the exposure of internal moderation audit logs may pose compliance and confidentiality risks on community platforms handling sensitive staff communications.
Payment bypass in the discourse-subscriptions plugin allows unauthenticated users to gain membership in subscription-gated groups without completing a financial transaction. Affected are all Discourse installations running the subscriptions plugin prior to fixed versions 2026.1.4, 2026.3.1, 2026.4.1, and 2026.5.0-latest.1. No public exploit has been identified at time of analysis, and the CVSS 4.0 score of 2.1 reflects high attack complexity, required user interaction, and limited confidentiality impact confined to the vulnerable system.
Missing authorization in Discourse's FormTemplatesController exposes form template names and structured YAML content from restricted categories to any authenticated user, regardless of their category permissions. All active release tracks prior to versions 2026.1.4, 2026.3.1, 2026.4.1, and 2026.5.0-latest.1 are affected when the form templates feature is enabled. Impact is bounded to site configuration metadata disclosure - no post content, credentials, or user data are reachable - and no public exploit or CISA KEV listing exists, consistent with the EPSS score of 0.04% at the 12th percentile.
Discourse's AI summarization feature exposes removed or restricted content to anonymous and unprivileged users through stale cached summaries. Affected are all Discourse instances running versions prior to 2026.1.4, 2026.3.1, 2026.4.1, and 2026.5.0-latest.1 with AI summarization enabled. An unauthenticated attacker can read cached summaries that persist after the underlying content has been moderated or deleted, bypassing content removal controls. No public exploit code exists and no KEV listing has been issued at time of analysis.
Discourse versions 2026.1.0 through 2026.1.2, 2026.2.0 through 2026.2.1, and 2026.3.0-beta expose staged user custom fields and usernames on public invite pages without requiring email verification. An unauthenticated remote attacker can enumerate user information and custom field data by accessing public invitation links, potentially gathering sensitive user attributes before account activation. The vulnerability has been patched in versions 2026.1.3, 2026.2.2, and 2026.3.0, with no public exploit code or active exploitation confirmed at time of analysis.
Discourse versions 2026.1.0-2026.1.2, 2026.2.0-2026.2.1, and 2026.3.0-pre allow unauthenticated users to enumerate and view hidden staff-only tags and associated metadata through an authorization bypass flaw. All instances with tagging enabled and staff-only tag groups configured are vulnerable. The issue has been patched in versions 2026.1.3, 2026.2.2, and 2026.3.0 final. No public exploit code or active exploitation has been confirmed at the time of analysis.
Discourse versions 2026.1.0-2026.1.2, 2026.2.0-2026.2.1, and 2026.3.0-beta allow authenticated moderators to bypass category permission controls and retrieve post content, topic titles, and usernames from categories they lack authorization to access via a sentiment analytics endpoint. Patches are available (2026.1.3, 2026.2.2, 2026.3.0); no public exploit code or active exploitation has been identified.
Discourse 2026.1.0 through 2026.3.0-beta allows authenticated moderators to bypass authorization controls in the Category Chatables Controller, disclosing sensitive information about hidden group names and user counts. The vulnerability affects multiple release branches and has been patched in versions 2026.1.3, 2026.2.2, and 2026.3.0. With a CVSS score of 5.3 and low attack complexity, this represents a meaningful information disclosure risk requiring prompt patching.
Server-side request forgery (SSRF) in Discourse group email settings test endpoint allows authenticated non-staff group owners to initiate outbound connections to arbitrary hosts and ports, enabling internal network reconnaissance. Affects Discourse 2026.1.0-2026.1.2, 2026.2.0-2026.2.1, and 2026.3.0-rc versions. Patched in 2026.1.3, 2026.2.2, and 2026.3.0. No public exploit code or active exploitation confirmed at time of analysis.
Discourse versions 2026.1.0-2026.1.2, 2026.2.0-2026.2.1, and 2026.3.0-pre allow authenticated users to escalate their subscription tier by purchasing a lower-cost plan while obtaining benefits reserved for higher-tier subscriptions. The vulnerability has a CVSS 6.3 score reflecting the integrity impact, requires high attack complexity and partial timing conditions, but affects confidentiality minimally. Vendor-released patches address the flaw in versions 2026.1.3, 2026.2.2, and 2026.3.0, and the exploit likely requires knowledge of the subscription grant mechanism.
Discourse versions 2026.1.0 through 2026.1.2, 2026.2.0 through 2026.2.1, and 2026.3.0 prior to patching allow authenticated users to disclose shared draft topic titles via specially crafted inline onebox requests that reference the shared drafts category. An attacker with valid Discourse credentials can enumerate and read draft titles not intended for their access, violating information confidentiality. The vulnerability has been patched in versions 2026.1.3, 2026.2.2, and 2026.3.0; EPSS and KEV data indicate no current active exploitation, though the fix is available and should be deployed promptly given the low barrier to exploitation.
Discourse versions 2026.1.0 through 2026.1.2, 2026.2.0 through 2026.2.1, and 2026.3.0 leak read receipt metadata (who read staff-only posts and when) to non-staff users who should not have access to that information. While no post content is exposed, the metadata disclosure violates intended access controls. Patches are available in versions 2026.1.3, 2026.2.2, and 2026.3.0.
Discourse versions 2026.1.0 through 2026.1.2, 2026.2.0 through 2026.2.1, and 2026.3.0-beta retain unauthorized poll interaction capabilities for users who have lost access to private topics, allowing them to vote on and toggle poll status despite removal from category group membership. While no topic content is exposed, the vulnerability permits state modification in topics to which access should have been revoked, violating the intended access control model. Patched versions 2026.1.3, 2026.2.2, and 2026.3.0 are available, and no public exploit code has been identified.
Discourse chat user search functionality discloses channel membership information to authenticated users without proper authorization checks, allowing users to infer private channel membership across versions 2026.1.0-2026.1.2, 2026.2.0-2026.2.1, and 2026.3.0-rc1, affecting community administrators and organizations relying on channel privacy. The vulnerability requires authenticated access but carries low confidentiality impact (CVSS 4.3); patches are available in versions 2026.1.3, 2026.2.2, and 2026.3.0.
Category group moderators in Discourse versions 2026.1.0-2026.1.2, 2026.2.0-2026.2.1, and 2026.3.0-pre can perform privileged actions (such as topic moderation) on content within private categories to which they lack read access, bypassing intended access controls. This authenticated privilege escalation affects self-hosted and managed Discourse instances and has been resolved in versions 2026.1.3, 2026.2.2, and 2026.3.0+. No public exploit code or active exploitation has been reported at this time.
Stored cross-site scripting (XSS) in Discourse assignment UI allows authenticated users with assign permission to inject arbitrary HTML/JavaScript into user and group display names when the hidden prioritize_full_name_in_ux site setting is enabled, affecting versions 2026.1.0–2026.1.2, 2026.2.0–2026.2.1, and 2026.3.0. The injected payload executes in the browser of any user viewing an affected topic, enabling session hijacking, credential theft, or malware distribution. No active exploitation confirmed; however, the requirement for console access to enable the vulnerable setting and assign permission to exploit limits real-world impact, though the low CVSS score (2.1) reflects these constraints rather than severity of XSS itself.
Stored cross-site scripting (XSS) in Discourse category description API endpoints allows authenticated users with category management privileges to inject malicious scripts that execute in the browsers of other users viewing the category. The vulnerability affects Discourse versions 2026.1.0 through 2026.1.2, 2026.2.0 through 2026.2.1, and 2026.3.0-pre-release due to missing input sanitization on category description updates. Vendor-released patches address this in versions 2026.1.3, 2026.2.2, and 2026.3.0; no public exploit code has been identified at time of analysis.
Stored cross-site scripting (XSS) in Discourse allows authenticated users with conversation creation privileges to inject arbitrary HTML and JavaScript via crafted AI conversation titles, executing malicious payloads in the browsers of users viewing onebox previews and potentially enabling session hijacking or unauthorized actions. Affects Discourse versions 2026.1.0 through 2026.1.2, 2026.2.0 through 2026.2.1, and 2026.3.0-beta; patched versions 2026.1.3, 2026.2.2, and 2026.3.0 are available. No public exploit code or active exploitation has been confirmed at time of analysis.
Open redirect vulnerability in Discourse versions 2026.1.0 through 2026.3.0 allows unauthenticated remote attackers to redirect users to arbitrary destinations via a malicious sso_destination_url cookie, exploiting a lack of URL validation in the StaticController enter action. While the cookie is normally set during legitimate DiscourseConnect Provider flows with cryptographic validation, attackers can directly set client-controlled cookies to bypass validation logic. The vulnerability requires user interaction (clicking a crafted link) and persistence of attacker-controlled cookies to exploit, but successful exploitation can be used for credential harvesting or phishing attacks. No public exploit code or active exploitation has been confirmed at time of analysis. Patched versions 2026.1.3, 2026.2.2, and 2026.3.0 are available.
Discourse moderators can export CSV data from admin-restricted reports in versions 2026.1.0-2026.1.2, 2026.2.0-2026.2.1, and 2026.3.0-beta, circumventing role-based access controls and exposing sensitive operational data intended exclusively for administrators. The vulnerability requires authenticated moderator access but carries low confidentiality impact (CVSS 5.3). Vendor-released patches are available in Discourse 2026.1.3, 2026.2.2, and 2026.3.0.
Discourse versions 2026.1.0-2026.1.2, 2026.2.0-2026.2.1, and 2026.3.0 leak Stripe API keys across sites in multisite cluster deployments due to improper credential isolation in the discourse-subscriptions plugin, allowing authenticated users with UI access on one site to view payment credentials belonging to other sites within the same cluster. CVSS 2.0 reflects low severity (information disclosure only, requires authentication and user interaction), but the exposure of payment processor credentials carries material business risk. Patches are available in versions 2026.1.3, 2026.2.2, and 2026.3.0.
An authorization bypass vulnerability exists in Discourse prior to versions 2026.3.0-latest.1, 2026.2.1, and 2026.1.2, where non-staff users with elevated group membership can access deleted posts belonging to any user through an overly permissive authorization check on the deleted posts index endpoint. This is a CWE-863 (Incorrect Authorization) vulnerability that allows unauthorized information disclosure of deleted content. No public exploit or active exploitation in the wild has been reported, but patches are available and no workarounds exist.
Discourse versions prior to 2026.3.0-latest.1, 2026.2.1, and 2026.1.2 contain an authorization bypass vulnerability where users with tag-editing permissions can edit and create tag synonyms for tags within restricted tag groups, even when those users lack visibility into the restricted tags themselves. This represents a broken access control issue (CWE-862) with low CVSS score (3.5) due to high privilege requirement and limited impact scope, though it enables unauthorized information disclosure and tag manipulation within the platform. No public exploit code or active exploitation in the wild has been reported at this time.
An information disclosure vulnerability in Discourse prior to versions 2026.3.0-latest.1, 2026.2.1, and 2026.1.2 allows unauthenticated attackers to enumerate private group membership by observing directory result changes when manipulating the exclude_groups parameter. This enables attackers to determine whether specific users are members of private groups without authentication, representing a direct privacy violation. The vulnerability does not appear to be actively exploited in the wild (no KEV status indicated), but patches are available from the vendor.
Discourse versions prior to 2026.3.0-latest.1, 2026.2.1, and 2026.1.2 contain an access control bypass vulnerability where attackers can grant invites to private message topics even after losing direct access to those conversations. This authentication bypass (CWE-863) allows unauthorized lateral privilege escalation within discussion communities. No public exploit code has been widely reported, but the vulnerability is patched across multiple release branches, indicating vendor awareness of active exploitation risk.
A privilege escalation vulnerability in Discourse allows staff members to arbitrarily modify group notification levels for any user without proper authorization checks. This affects Discourse versions prior to 2026.3.0-latest.1, 2026.2.1, and 2026.1.2, enabling authenticated staff users to alter notification settings for other users in ways they should not be permitted to do. While no CVSS score or EPSS data is available and no known public exploits have been confirmed, the vulnerability is classified under CWE-862 (Missing Authorization) and has been assigned a GitHub Security Advisory (GHSA-qggq-wr6h-vhrg) with patches available.
Discourse versions prior to 2026.3.0-latest.1, 2026.2.1, and 2026.1.2 contain an information disclosure vulnerability where IP addresses of flagged users are exposed to any user with access to the review queue, including those without proper authorization. This allows unauthorized access to sensitive network information that should be restricted to administrators. The vulnerability has a CVSS score of 3.5 (low severity) with no known public exploits or KEV designation, but represents a clear privacy and data protection issue in moderation workflows.
A stored cross-site scripting (XSS) vulnerability exists in Discourse's solved posts stream feature where unsanitized topic titles can be persisted and executed in the browser context of authenticated users. The vulnerability affects Discourse versions prior to 2026.3.0-latest.1, 2026.2.1, and 2026.1.2, allowing authenticated attackers to inject malicious JavaScript that executes in the browsers of other users viewing the affected topics. While the CVSS score of 5.4 reflects moderate severity with low impact scope and no availability impact, the attack requires user interaction indirectly through viewing a crafted topic title, making real-world exploitation limited to scenarios where attackers have post creation privileges.
A broken access control vulnerability in Discourse versions prior to 2026.3.0-latest.1, 2026.2.1, and 2026.1.2 allows moderators to create Zendesk support tickets for topics they lack permission to view, bypassing intended access restrictions. This affects all Discourse forums utilizing the Zendesk plugin integration. The vulnerability is classified as CWE-863 (Incorrect Authorization) and has no publicly disclosed active exploitation or proof-of-concept code, though patches are available from the vendor.
An authorization bypass vulnerability in Discourse versions prior to 2026.3.0-latest.1, 2026.2.1, and 2026.1.2 allows authenticated users to accept or unaccept solutions in hidden Solved topics without proper authorization checks. The vulnerability affects the open-source Discourse discussion platform and permits users with valid credentials to manipulate solution status across topics they should not have access to, resulting in information disclosure and integrity violations. This is a low-to-moderate severity issue with a CVSS score of 5.4 that requires prior authentication but carries exploitation risk in multi-tenant or federated Discourse installations.
An Insecure Direct Object Reference (IDOR) vulnerability in Discourse allows any authenticated user to access restricted metadata about AI personas, features, and LLM models by directly referencing their identifiers, exposing sensitive information including credit allocations and usage statistics. The vulnerability affects Discourse versions prior to 2026.3.0-latest.1, 2026.2.1, and 2026.1.2, and requires only low-privilege access (any logged-in user account) over the network. While the CVSS score of 5.3 indicates low confidentiality impact with no integrity or availability impact, this represents a clear information disclosure risk that could enable unauthorized tracking of AI resource consumption and usage patterns.
Discourse prior to versions 2026.3.0-latest.1, 2026.2.1, and 2026.1.2 contains an information disclosure vulnerability in the ComposerController#mentions endpoint that reveals hidden group membership to any authenticated user capable of messaging the group. An attacker can exploit this by supplying hidden-membership group names and probing arbitrary usernames to infer membership based on whether the user_reasons field returns 'private', effectively bypassing group member-visibility controls designed to protect sensitive group information. This vulnerability is not known to be actively exploited in the wild (KEV status unknown), carries a moderate CVSS score of 5.3 reflecting low confidentiality impact with low attack complexity, and requires prior authentication.
A remote code execution vulnerability in Discourse (CVSS 5.3). Remediation should follow standard vulnerability management procedures.
Discourse versions prior to 2026.3.0-latest.1, 2026.2.1, and 2026.1.2 contain an authorization bypass vulnerability in the user actions endpoint that allows authenticated users to access other users' private activity data. An attacker with valid login credentials can enumerate and view private user actions without proper permission checks, resulting in information disclosure. This is a moderate-severity issue with a CVSS score of 5.3 that requires authentication to exploit but has no known active exploitation or public proof-of-concept at this time.
A moderator authorization bypass vulnerability in Discourse allows authenticated moderators to access post metadata they should not have permission to view due to insufficient authorization checks. The vulnerability affects Discourse versions prior to 2026.3.0-latest.1, 2026.2.1, and 2026.1.2, with patched versions now available. While the CVSS score of 5.3 indicates moderate severity and the attack requires authenticated access with moderator privileges, this represents a meaningful confidentiality risk in multi-tenant forum environments where metadata isolation between moderation scopes is critical.