Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconRegister or use existing AWS account
-
DeliveryCreate attacker-controlled SNS topic
-
ExploitCraft forged SES Bounce notification for target user email
-
InstallPublish via Amazon SNS (Amazon signs message)
-
C2Submit signed payload to victim's POST /webhooks/aws
-
ExecuteDiscourse accepts valid signature without TopicArn check
-
ImpactTarget user email address revoked
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V15 - Secure Coding and Architecture Data authenticity verification
|
| Exploitation Conditions | Exploitation requires that the target Discourse instance has the AWS SES bounce webhook integration enabled and the POST /webhooks/aws endpoint reachable over the network. The attacker must hold a valid AWS account (freely obtainable) to publish SNS messages signed by Amazon - no Discourse account or credentials are required. The attacker must also know a valid email address registered to a target user on the instance. Exploitation is limited to one email revocation per attack invocation; mass revocation would require repeated targeted requests per victim. Discourse instances using any other email provider (SMTP without SES, Mailgun, Postmark, etc.) or with the SES webhook not configured are completely unaffected. No special platform version, OS, or deployment topology beyond SES integration enablement is required. |
| Impact | The NVD CVSS 6.5 with AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L accurately characterizes the attack surface: the webhook is internet-facing, no Discourse credentials are required, and no user interaction is needed. However, the 'PR:N' metric warrants context - while no Discourse authentication is required, the attacker must possess a valid AWS account to publish SNS messages. AWS accounts are freely and cheaply obtainable, so this is not a meaningful barrier in practice, but it does distinguish the attack from a fully anonymous internet threat. No EPSS data was provided in the intelligence feed; given the absence of KEV listing and no public exploit code, exploitation probability appears low at this time. Real-world impact is limited to targeted disruption: each attack revokes a single victim's email association, which can lock them out of email-based account recovery or disable forum notifications - a denial-of-email-service or harassment vector rather than a credential-theft or RCE scenario. The 'Information Disclosure' tag applied by the reporter appears misaligned; the actual impact is integrity and availability, not data exfiltration. Deployments not using the AWS SES integration are entirely unaffected, significantly narrowing the real-world exposed population. |
| Exploit ScenarioDerived | An attacker registers or uses an existing AWS account, creates an SNS topic, and constructs a valid SNS Bounce notification JSON payload targeting a known Discourse user's email address. Publishing this message through Amazon's SNS infrastructure causes Amazon to sign it with valid Amazon credentials; the attacker then delivers it to the victim Discourse instance's POST /webhooks/aws endpoint. Discourse's signature verification passes, the platform treats the notification as a legitimate SES bounce, and the target user's email address is revoked. No public exploit code exists at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 09, 2026
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.
RemediationAI
Upgrade Discourse to 2026.6.0 (stable), 2026.5.1 (beta), 2026.4.2 (tests-passed), or 2026.1.5 (legacy), per the operator's active release branch. All four versions contain the TopicArn binding fix as confirmed by GitHub release tags and four associated commits. If immediate patching is not feasible, the most targeted workaround is to disable the AWS SES bounce webhook integration entirely, which removes the vulnerable endpoint from the attack surface at the cost of losing automated bounce processing - operators would need to handle hard bounces manually or via an alternative mechanism. A secondary compensating control is to restrict network access to POST /webhooks/aws using a reverse-proxy or WAF rule to Amazon SNS IP ranges published at https://ip-ranges.amazonaws.com/ip-ranges.json; note that this does not eliminate the underlying TopicArn validation gap, since a forged message from any AWS account would still originate from Amazon-owned IP ranges and carry a valid Amazon signature.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 packages in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Discourse integrates with Amazon Simple Email Service (SES) through Amazon SNS webhook callbacks to process bounce and complaint notifications. The vulnerable endpoint (POST /webhooks/aws) performs cryptographic verification that each incoming SNS message carries a valid Amazon signature - confirming the message transited Amazon's own infrastructure - but fails to validate the SNS TopicArn against a trusted allowlist configured by the Discourse operator. This is a textbook CWE-345 (Insufficient Verification of Data Authenticity) defect: the authentication check proves the carrier is Amazon but does not prove the sender is the operator's own SNS topic. Because any AWS account can create an SNS topic and publish messages that Amazon will sign, the signature check is rendered meaningless as an authorization control. The root fix, visible across four GitHub commits (3a3d315, 61f12e1, 958f0cd, aea3519), introduces TopicArn binding so only notifications from the operator's configured topic are accepted.
Know when Discourse gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L
Webhook is network-accessible with no Discourse authentication required (PR:N, AV:N); AWS account prerequisite is attacker-controlled, not a target-side access control (AC:L); impact confined to email revocation with no confidentiality loss (I:L, A:L, C:N).
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
1DescriptionCVE.org
Discourse is an open-source discussion platform. Prior to 2026.6.0, 2026.5.1, 2026.4.2, and 2026.1.5, the AWS SES bounce webhook at POST /webhooks/aws verified that SNS messages were signed by Amazon but did not bind them to trusted TopicArn values, allowing any AWS account holder to publish validly signed forged Bounce notifications that revoke a targeted user email. This issue is fixed in versions 2026.6.0, 2026.5.1, 2026.4.2, and 2026.1.5.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Discourse versions prior to 3.5.0.beta6 contain a reflected cross-site scripting (XSS) vulnerability in social login fun
discourse-bbcode is the official BBCode plugin for Discourse. Rated critical severity (CVSS 9.8), this vulnerability is
Unauthorized information disclosure in Discourse discussion platform versions prior to 2026.3.0-latest.1, 2026.2.1, and
Discourse is an open source platform for community discussion. Rated high severity (CVSS 8.2), this vulnerability is rem
Discourse versions prior to 2025.12.2, 2026.1.1, and 2026.2.0 contain an insecure direct object reference (IDOR) in the
In Discourse 2.7.0 through beta1, a rate-limit bypass leads to a bypass of the 2FA requirement for certain forms. Rated
Unauthenticated attackers can submit forged webhook payloads to multiple email provider integrations in Discourse versio
Discourse is an open-source discussion platform. Rated medium severity (CVSS 6.5), this vulnerability is remotely exploi
Discourse is an open source platform for community discussion. Rated medium severity (CVSS 5.9), this vulnerability is r
Discourse versions prior to 3.4.4 (stable), 3.5.0.beta5 (beta), and 3.5.0.beta6-dev (tests-passed) contain a critical vu
Discourse is an open source platform for community discussion. Rated critical severity (CVSS 9.8), this vulnerability is
Discourse Patreon enables syncronization between Discourse Groups and Patreon rewards. Rated critical severity (CVSS 9.8
EUVD-2026-42728
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB