0
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2026-08-06 13:08:40 +08:00
discourse/spec/lib/email
Nat 61f12e13aa SECURITY: Prevent any signed AWS SNS TopicARN from being accepted via webhooks
Any AWS account holder can subscribe their own SNS topic to a Discourse instance's /webhooks/aws and publish bounce notifications that AWS will sign legitimately. The forged bounces are processed against arbitrary user emails, bumping bounce_score and eventually triggering email revocation..

This fix adds a new `aws_sns_topic_arn_allowlist` site setting. Also hardens Jobs::ProcessSnsNotification against three issues:
- Binds bounces to (message_id, to_address) via find_by, so a legitimately-subscribed SNS publisher can no longer bounce arbitrary recipients we didn't send to.
- Skips duplicate notifications (next if email_log.bounced?) — AWS SNS delivers at-least-once.
- Uses update! instead of update_columns so EmailLog's existing before_save normalizes the bounce status code.

Also add a dashboard problem flags self-hosted admins whose SMTP looks like SES but who haven't set the allowlist yet.

https://github.com/discourse/discourse/security/advisories/GHSA-8f9m-v436-wr3x
2026-06-30 16:10:52 +02:00
..
authentication_results_spec.rb
cleaner_spec.rb FIX: Email::Cleaner must clear the encoding of replaced bodies 2026-01-15 13:05:25 -05:00
email_spec.rb
message_builder_spec.rb DEV: Fix a state leak in message_builder spec (#40000) 2026-05-13 22:09:10 +02:00
processor_spec.rb FIX: email to a category should not require enabling reply-by-email (#37227) 2026-02-03 13:01:16 -05:00
receiver_spec.rb FIX: email to a category should not require enabling reply-by-email (#37227) 2026-02-03 13:01:16 -05:00
renderer_spec.rb
sender_spec.rb FEATURE: Add PM whisper feedback for email sending failures (#40250) 2026-05-22 17:17:15 -03:00
sns_spec.rb SECURITY: Prevent any signed AWS SNS TopicARN from being accepted via webhooks 2026-06-30 16:10:52 +02:00
styles_spec.rb FIX: User profiles are oneboxed badly in emails (#38403) 2026-03-10 16:18:54 +08:00