Skip to content

Security: require Stripe webhook signature, blog admin override#534

Merged
asim merged 1 commit intomainfrom
claude/add-wallet-transfers-74PHC
Apr 3, 2026
Merged

Security: require Stripe webhook signature, blog admin override#534
asim merged 1 commit intomainfrom
claude/add-wallet-transfers-74PHC

Conversation

@asim
Copy link
Copy Markdown
Member

@asim asim commented Apr 3, 2026

Security Audit Fixes

1. Stripe webhook signature now REQUIRED (HIGH)

Previously if STRIPE_WEBHOOK_SECRET wasn't set, webhooks were accepted without verification. An attacker could forge events to credit any account. Now rejects with 503 if secret isn't configured.

2. Blog edit/delete admin override (MEDIUM)

Blog post edit and delete only checked author ownership. Unlike apps (&& !acc.Admin) and social, admins couldn't moderate blog posts. Fixed to match the same pattern.

Audit results (no action needed)

  • Mail: All endpoints scoped to authenticated user ✓
  • Wallet transfers: Source always from session ✓
  • Admin routes: All 14 double-protected ✓
  • Apps/Social: Ownership + admin override ✓
  • Account IDs: Enforced lowercase at signup ✓

https://claude.ai/code/session_01GRGLA9yj7BpqKiyi6xFwnm

1. Stripe webhook: reject if STRIPE_WEBHOOK_SECRET not configured
   instead of silently accepting unsigned events. Prevents forged
   webhook events from crediting arbitrary accounts.

2. Blog edit/delete: add admin override (&&!acc.Admin) matching
   the pattern used by apps and social. Admins can now moderate
   blog posts.

https://claude.ai/code/session_01GRGLA9yj7BpqKiyi6xFwnm
@asim asim merged commit 83a18ca into main Apr 3, 2026
1 of 2 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.

2 participants