GHSA-v828-m3pf-vq9q
New API: Unauthenticated payment webhooks allow memory and disk DoS via unbounded body reads and full-body logging
Quick fix
GHSA-v828-m3pf-vq9q — github.com/QuantumNous/new-api: upgrade to the fixed version with the command below.
go get github.com/QuantumNous/new-api@v1.0.0-rc.11 Details
## Summary
Unauthenticated payment webhook endpoints could read and log the entire request body before validating the webhook signature. When a payment webhook was enabled, an unauthenticated attacker could send oversized requests to public callback endpoints and force excessive memory use and log growth before the request was rejected.
Affected public endpoints included:
- `POST /api/stripe/webhook` - `POST /api/creem/webhook` - `POST /api/waffo/webhook`
This issue did not allow forging successful payments, because signature validation still guarded the payment processing logic. The vulnerable behavior was the expensive unauthenticated request processing that occurred before signature validation.
## Impact
A remote unauthenticated attacker could cause denial of service through memory pressure, container OOM/restarts, or disk consumption from full-body logging. The impact is availability-only and is rated High.
## Affected versions
Versions before `v1.0.0-rc.11` are affected. The earlier affected range of `<= v1.0.0-rc.7` was incomplete; the anonymous request body limit was introduced later and first appears in `v1.0.0-rc.11`.
## Patches
This issue is fixed in `v1.0.0-rc.11`. The fix adds `middleware.AnonymousRequestBodyLimit()` and applies it to unauthenticated POST routes, including the payment webhook callbacks. The default limit is controlled by `ANONYMOUS_REQUEST_BODY_LIMIT_KB` and defaults to 512 KiB.
## Workarounds
If upgrading immediately is not possible, operators should disable unused payment webhooks, enforce request body limits at a reverse proxy or load balancer, and ensure application and container logs have rotation and quotas. These mitigations reduce exposure but do not replace upgrading.
## References
- Fixed by commit `d2f7f9ee3adf3ef66798783a60d7bc712451c85c`. - Relevant code paths: `router/api-router.go`, `middleware/request_body_limit.go`, `controller/topup_stripe.go`, `controller/topup_creem.go`, and `controller/topup_waffo.go`.
Are you affected?
Enter the version of the package you're using.
Affected packages
0 Fixed in: 1.0.0-rc.11 go get github.com/QuantumNous/new-api@v1.0.0-rc.11 References
- https://github.com/QuantumNous/new-api/security/advisories/GHSA-v828-m3pf-vq9q [WEB]
- https://github.com/QuantumNous/new-api/pull/5244 [WEB]
- https://github.com/QuantumNous/new-api/commit/d2f7f9ee3adf3ef66798783a60d7bc712451c85c [WEB]
- https://github.com/QuantumNous/new-api [PACKAGE]
- https://github.com/QuantumNous/new-api/releases/tag/v1.0.0-rc.11 [WEB]