Skip to content

fix: reject inbound webhooks when auth credentials are missing#5

Merged
mpge merged 1 commit intomainfrom
security/fix-webhook-auth-and-xss
Feb 15, 2026
Merged

fix: reject inbound webhooks when auth credentials are missing#5
mpge merged 1 commit intomainfrom
security/fix-webhook-auth-and-xss

Conversation

@mpge
Copy link
Member

@mpge mpge commented Feb 15, 2026

  • Mailgun: return false (was return true) when signing key is not configured
  • Mailgun: add 5-minute timestamp freshness window for replay protection
  • Mailgun: use timingSafeEqual for constant-time signature comparison
  • Postmark: require configured token via basic auth (was unconditional return true)
  • SES: require TopicArn match and validate SigningCertURL domain (was unconditional return true)

- Mailgun: return false (was return true) when signing key is not configured
- Mailgun: add 5-minute timestamp freshness window for replay protection
- Mailgun: use timingSafeEqual for constant-time signature comparison
- Postmark: require configured token via basic auth (was unconditional return true)
- SES: require TopicArn match and validate SigningCertURL domain (was unconditional return true)
@mpge mpge merged commit c81561c into main Feb 15, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant