Verify webhooks and callbacks check signatures
Find webhook receivers and confirm they verify the provider’s signature with a constant-time compare before trusting the body.
bash
grep -rEn "webhook|/callback|Stripe-Signature|X-Hub-Signature|hmac" --include=*.{py,js,ts,java,php,go} .
The bug trusts the payload without verifying.
python
event = json.loads(request.body) # no signature check
if event["type"]=="payment.success": grant_access()
Pro note: verification must use the raw body (not the parsed and re-serialized one) and a constant-time comparison to avoid timing leaks. Also confirm replay protection via the timestamp and event id, since a captured valid event can otherwise be resent.