Skip to main content

Discourse EUVDEUVD-2026-42728

| CVE-2026-53961 MEDIUM
Insufficient Verification of Data Authenticity (CWE-345)
2026-07-09 security-advisories@github.com
6.5
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Register or use existing AWS account
  2. Delivery
    Create attacker-controlled SNS topic
  3. Exploit
    Craft forged SES Bounce notification for target user email
  4. Install
    Publish via Amazon SNS (Amazon signs message)
  5. C2
    Submit signed payload to victim's POST /webhooks/aws
  6. Execute
    Discourse accepts valid signature without TopicArn check
  7. Impact
    Target 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

discourse 2026.4.0-latest, < 2026.4.2
discourse 2026.1.0-latest, < 2026.1.5
discourse 2026.5.0-latest, < 2026.5.1

Affected Packages

euvd discourse_2026_1_0_latest fix: 2026.1.5
euvd discourse_2026_4_0_latest fix: 2026.4.2
euvd discourse_2026_5_0_latest fix: 2026.5.1

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

Vendor (github) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L
vuln.today AI 6.5 MEDIUM

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).

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
Low

Lifecycle Timeline

1
Patch available
Jul 09, 2026 - 23:02 EUVD

DescriptionCVE.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

EPSS Score
0.2%
Top 87% exploitable
Prevalence
Medium
popular open-source forum software with broad self-hosted and managed deployment
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2025-48954 HIGH POC
8.1 Jun 25

Discourse versions prior to 3.5.0.beta6 contain a reflected cross-site scripting (XSS) vulnerability in social login fun

CVE-2022-46162 CRITICAL POC
9.8 Nov 30

discourse-bbcode is the official BBCode plugin for Discourse. Rated critical severity (CVSS 9.8), this vulnerability is

CVE-2026-27934 HIGH POC
8.7 Mar 19

Unauthorized information disclosure in Discourse discussion platform versions prior to 2026.3.0-latest.1, 2026.2.1, and

CVE-2024-47773 HIGH POC
8.2 Oct 08

Discourse is an open source platform for community discussion. Rated high severity (CVSS 8.2), this vulnerability is rem

CVE-2026-26265 HIGH POC
7.5 Feb 26

Discourse versions prior to 2025.12.2, 2026.1.1, and 2026.2.0 contain an insecure direct object reference (IDOR) in the

CVE-2021-3138 HIGH POC
7.5 Jan 14

In Discourse 2.7.0 through beta1, a rate-limit bypass leads to a bypass of the 2FA requirement for certain forms. Rated

CVE-2026-26077 MEDIUM POC
6.5 Feb 26

Unauthenticated attackers can submit forged webhook payloads to multiple email provider integrations in Discourse versio

CVE-2023-38706 MEDIUM POC
6.5 Sep 15

Discourse is an open-source discussion platform. Rated medium severity (CVSS 6.5), this vulnerability is remotely exploi

CVE-2024-53991 MEDIUM POC
5.9 Dec 19

Discourse is an open source platform for community discussion. Rated medium severity (CVSS 5.9), this vulnerability is r

CVE-2025-48877 CRITICAL
9.8 Jun 09

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

CVE-2023-47121 CRITICAL
9.8 Nov 10

Discourse is an open source platform for community discussion. Rated critical severity (CVSS 9.8), this vulnerability is

CVE-2022-39355 CRITICAL
9.8 Oct 26

Discourse Patreon enables syncronization between Discourse Groups and Patreon rewards. Rated critical severity (CVSS 9.8

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy