Description
BillionMail through 4.9 contains a hard-coded cryptographic key vulnerability that allows unauthenticated attackers to forge unsubscribe and subscribe-confirm JWTs by computing the key from shipped configuration constants. Attackers can submit forged tokens to /api/unsubscribe, /api/unsubscribe_new, or /api/subscribe/confirm to deactivate any contact or force confirmed subscriptions.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| aaPanel | BillionMail | ≤ 4.9 | — |
References
- https://hackmd.io/@hieuPenguinnn/billionmail-unsubscribe-subscribe-jwt-deterministic-secret-forgery third-party-advisory
- https://github.com/aaPanel/BillionMail/blob/v4.9/core/internal/service/batch_mail/jwt.go#L98-L123 technical-description
- https://github.com/aaPanel/BillionMail/blob/v4.9/core/manifest/config/config.yaml technical-description
- https://github.com/aaPanel/BillionMail product
- VulnCheck Advisory: BillionMail through 4.9 Forgeable JWTs via Default Signing Key third-party-advisory