Summary
The limiter short-circuits unless the request is exactly POST /payments, leaving POST /merchants, all GET endpoints, and redelivery unprotected.
Location
src/api/mod.rs:168 (if req.method() == POST && path == "/payments")
Details & impact
Merchant provisioning, payment enumeration, webhook listing, and redelivery can all be flooded, enabling DoS and abuse (see the provisioning and redelivery issues).
Suggested fix
Apply a baseline limiter to all routes with per-route overrides for expensive/sensitive ones.
Acceptance criteria
- All routes have a default limit; sensitive routes have stricter limits.
Summary
The limiter short-circuits unless the request is exactly
POST /payments, leavingPOST /merchants, allGETendpoints, and redelivery unprotected.Location
src/api/mod.rs:168(if req.method() == POST && path == "/payments")Details & impact
Merchant provisioning, payment enumeration, webhook listing, and redelivery can all be flooded, enabling DoS and abuse (see the provisioning and redelivery issues).
Suggested fix
Apply a baseline limiter to all routes with per-route overrides for expensive/sensitive ones.
Acceptance criteria